Bug: 132332762

Clone this repo:
  1. d0f4c8f Merge tag jbr-release-21b212.1 by Eugene Yakavets · 9 months ago main master
  2. 40343ca update exclude list on results of 21_b205.2 test runs by Vitaly Provodin · 11 months ago jb21-b212.1 jbr-release-21b212.1
  3. 94d6344 JBR-5963: Fix RobotKeyboard test and implement getLockingKeyState by Nikita Tsarev · 11 months ago jb21-b212
  4. 3834f6c JBR-5962 Wayland: fix the main event loop to allow for secondary queues by Maxim Kartashev · 11 months ago jb21-b208
  5. a4e4430 JBR-5824 Ensure popup menus are on the correct screen by Sergei Tachenov · 12 months ago jb21-b207

official JetBrains project

Welcome to JetBrains Runtime!

JetBrains Runtime is a fork of OpenJDK available for Windows, Mac OS X, and Linux. It supports enhanced class redefinition (DCEVM), features optional JCEF, a framework for embedding Chromium-based browsers, includes a number of improvements in font rendering, keyboards support, windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration and bugfixes not yet present in OpenJDK.

NOTE: This is a development branch that is periodically synchronized with the OpenJDK master branch.

Release builds are based on these branches:

Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list can be found on the releases page.

Releases based on JDK 17

IDE VersionLatest JBRDate Released
2023.117.0.6-b829.501-Mar-2023
2022.317.0.6-b653.3428-Feb-2023
2022.217.0.6-b469.8206-Mar-2023

Releases based on JDK 11

IDE VersionLatest JBRDate Released
2022.111_0_16-b2043.6410-Nov-2022
2021.311_0_14_1-b1751.4621-Feb-2022
2021.211_0_13-b1504.4915-Nov-2021
2021.111.0.11+9-b1341.6015-Jun-2021
2020.311_0_10-b1145.11521-Jun-2021

Contents

Why Use JetBrains Runtime?

  • Embedded browser: JetBrains Runtime includes the Java Chromium Embedded Framework (JCEF), which enables you to embed a Chromium-based browsers in your JVM-based application. To use it, download a build with JCEF.
  • Enhanced class re-definition with the DCEVM technology that makes it easier to reload changed code without restarting JVM; this feature needs to be explicitly enabled with -XX:+AllowEnhancedClassRedefinition.
  • Better FPS performance for graphics-intensive applications.
  • Improved font rendering, keyboard input (such as shortcuts and multinational keyboards), HiDPI and accessibility support.
  • Robust desktop experience: GUI-related fixes often reach JetBrains Runtime much earlier than the corresponding version of OpenJDK.

Products Built on JetBrains Runtime

  • Android Studio. The official IDE for Google's Android operating system.
  • CLion. A cross-platform IDE for C and C++ from JetBrains.
  • DataGrip. The IDE for Databases and SQL from JetBrains.
  • GoLand. The cross-platform Go IDE from JetBrains.
  • IntelliJ IDEA. The IDE for JVM from JetBrains.
  • JProfiler. The Java profiler.
  • PhpStorm. The PHP IDE from JetBrains.
  • PyCharm. The Python IDE from JetBrains.
  • Rider. The cross-platform .NET IDE from JetBrains.
  • RubyMine. The Ruby and Rails IDE from JetBrains.
  • Toolbox App. JetBrains IDE manager.
  • WebStorm. The JavaScript IDE from JetBrains.
  • YourKit. Java and .NET profilers.

Getting Sources

macOS, Linux

git config --global core.autocrlf input
git clone git@github.com:JetBrains/JetBrainsRuntime.git
cd JetBrainsRuntime
git checkout jbr21

Windows

git config --global core.autocrlf false
git clone git@github.com:JetBrains/JetBrainsRuntime.git
cd JetBrainsRuntime
git checkout jbr21

Configuring the Build Environment

Here are quick per-platform instructions for those who can't wait to get started. Please refer to OpenJDK build docs for in-depth coverage of all the details.

TIP: To get a preliminary report of what's missing, run ./configure and check its output. It would usually have meaningful advice on how to solve the problem.

Linux (Docker)

Create a container:

$ cd jb/project/docker
$ docker build .
...
Successfully built 942ea9900054

Run these commands in the new container:

$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
# cd /JetBrainsRuntime
# sh ./configure
# make images CONF=linux-x86_64-normal-server-release

Ubuntu Linux

Install the necessary tools, libraries, and headers with:

$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
       libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev

Get Java 19 (for instance, Azul Zulu Builds of OpenJDK 19).

Then run the following:

$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images

This will build the release configuration under ./build/linux-x86_64-server-release/.

Windows

Install the following:

From the command line:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l

The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.

In the Cygwin shell:

$ cd JetBrainsRuntime
$ git checkout main
$ bash configure --with-toolchain-version=2019
$ make images

This will build the release configuration under ./build/windows-x86_64-server-release/.

macOS

Install the following:

From the command line:

$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images

This will build the release configuration under ./build/macosx-x86_64-server-release/.

Developing

You can use CLion to develop native parts of the JetBrains Runtime and IntelliJ IDEA for the parts written in Java. Both require projects to be created.

CLion

Run

$ make compile-commands

in the git root and open the resulting build/.../compile_commands.json file as a project. Then use Tools | Compilation Database | Change Project Root to point to git root of this repository.

See also this detailed step-by-step tutorial for all platforms: How to develop OpenJDK with CLion.

IDEA

Run

$ sh ./bin/idea.sh

in the git root to generate project files (add --help for options). If you have multiple configurations (for example, release and fastdebug), supply the --conf <conf_name> argument. Then open the git root directory as a project in IDEA.

Contributing

We are happy to receive your pull requests! Before you submit one, please sign our Contributor License Agreement (CLA).

Resources