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 Version | Latest JBR | Date Released |
---|---|---|
2023.2 | 17.0.7-b1000.6 | 10-Jul-2023 |
2023.1 | 17.0.7-b829.16 | 06-Jun-2023 |
2022.3 | 17.0.6-b653.34 | 28-Feb-2023 |
2022.2 | 17.0.6-b469.82 | 06-Mar-2023 |
Releases based on JDK 11
IDE Version | Latest JBR | Date Released |
---|---|---|
2022.1 | 11_0_16-b2043.64 | 10-Nov-2022 |
2021.3 | 11_0_14_1-b1751.46 | 21-Feb-2022 |
2021.2 | 11_0_13-b1504.49 | 15-Nov-2021 |
2021.1 | 11.0.11+9-b1341.60 | 15-Jun-2021 |
2020.3 | 11_0_10-b1145.115 | 21-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 [email protected]:JetBrains/JetBrainsRuntime.git
Windows
git config --global core.autocrlf false
git clone [email protected]:JetBrains/JetBrainsRuntime.git
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 18 (for instance, Azul Zulu Builds of OpenJDK 18).
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
- Cygwin x64.
Required packages:
autoconf
,binutils
,cpio
,diffutils
,file
,gawk
,gcc-core
,make
,m4
,unzip
,zip
.
Install those together with Cygwin. - Visual Studio compiler toolset. Install with the desktop development kit, which includes Windows SDK and compilers. Visual Studio 2019 is supported by default.
- Java 18 (for instance, Azul Zulu Builds of OpenJDK 18). If you have problems while configuring, read Java tips on Cygwin.
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:
- Xcode command line developer tools and
autoconf
via Homebrew. - Java 18 (for instance, Azul Zulu Builds of OpenJDK 18).
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).