Selecting the JDK version the IDE will run under

Java 8

Please be aware that Java 8 is required to run IntelliJ IDEA starting from version 2016 on all the supported platforms. It also applies to the lightweight IDEs based on IntelliJ platform released from the same branch (144+).

Java 11

Starting with 2019.1 version some products are already bundled with JetBrains Runtime version 11 or have the choice between 8 and 11 when downloading. Other products can be switched to JBR11 as described below.

All the products on all the supported platforms already have JetBrains Runtime bundled and it will be used by default. If you need to change the runtime to a different version, see below.

All platforms: download and install JetBrains Runtime via Choose Runtime plug-in

  1. Install the Choose Runtime plugin (screenshot).
  2. Start the IDE, use Help | Find Action (Ctrl+Shift+A or Cmd+Shift+A on Mac), type "Choose Runtime", press Enter.
  3. Select the version to install, the higher the number after b, the more recent is the version. It makes sense to install the most recent version or the version you were asked to try by JetBrains staff. Installing old runtime versions may render your IDE unusable or introduce new issues.
  4. Click the Download button and wait until the file with JetBrains Runtime is downloaded.
  5. Once download is finished, click the Install button, the file will be unpacked into idea.config.path\jdks location and the full path to this JDK will be saved into idea.config.path\<product>.jdk file, for example: C:\Users\serge\.IntelliJIdea2017.1\config\jdks\jbsdk8u152b819.1_windows_x64. IDE will automatically restart.
  6. Verify via About dialog that the new runtime is used. Notice the vendor (should be JetBrains s.r.o) and the release number (should correspond to the number after b in the file you've downloaded).
  7. If the JDK version in the About dialog doesn't match or didn't change, see below. Most likely, you have an environment variable configured which has the priority over the <product>.jdk file. Remove any environment variables affecting IDE runtime selection and restart.

All platforms: switch between the installed runtimes

See the previous section. After installing the plug-in use the Choose Runtime action to switch between the different local runtimes:

Help | Find Action (Ctrl+Shift+A or Cmd+Shift+A on Mac), type "Choose Runtime", press Enter.

idea64_2019-09-18_19-11-16.png

Windows

JDK (JetBrains Runtime) is bundled with all the product installers and it's recommended that you will use the provided JDK version unless there are any specific issues. Since 2017.1 version 64-bit JDK is bundled by default on all the systems (32-bit JDK can be downloaded on Windows by the installer if needed).

JetBrains Runtime (based on OpenJDK) can be also downloaded separately, but you normally don't need to do it. 

<product>.exe uses this JDK search sequence:

  1. IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CL_JDK / DATAGRIP_JDK / GOLAND_JDK environment variable (depends on the product, WEBIDE_JDK applies to both WebStorm and PhpStorm before version 2016.1)

  2. idea.config.path\<product>.jdk file
  3. ..\jre directory
  4. system Registry
  5. JDK_HOME environment variable
  6. JAVA_HOME environment variable

<product>64.exe uses this JDK search sequence:

  1. IDEA_JDK_64 / PHPSTORM_JDK_64 / WEBIDE_JDK_64 / PYCHARM_JDK_64 / RUBYMINE_JDK_64 / CL_JDK_64 / DATAGRIP_JDK_64 / GOLAND_JDK_64 environment variable
  2. idea.config.path\<product>64.jdk file
  3. ..\jre64 directory
  4. system Registry
  5. JDK_HOME environment variable
  6. JAVA_HOME environment variable

It’s also possible to start the IDE with <product>.bat file located in the bin directory, it uses the following JDK search sequence:

  1. IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CL_JDK / DATAGRIP_JDK / GOLAND_JDK environment variable (depends on the product)
  2. idea.config.path\<product>64.jdk file
  3. idea.config.path\<product>.jdk file
  4. ..\jre64 directory
  5. ..\jre directory
  6. JDK_HOME environment variable
  7. JAVA_HOME environment variable
Environment variable must point to the JDK installation home directory, for example:
c:\Program Files (x86)\Java\jdk1.8.0_112
  • The actual JDK version used by the IDE can be verified in Help | About dialog (open any project to access the menu).
  • Define IDEA_JDK / PHPSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CL_JDK / DATAGRIP_JDK / GOLAND_JDK variable depending on the product to override the default version from IDE_HOME\jre.
  • Use Rapid Environment Editor to add/edit the variables, it will detect incorrect paths.

Linux

  • Starting from IntelliJ IDEA 2016 and the most recent versions of the lightweight IDEs, we are bundling custom JRE with Linux distributions, just like we've been doing for Mac. Our custom JRE is based on OpenJDK and includes the most up to date fixes to provide better user experience on Linux (like font rendering improvements and HiDPI support).
  • Boot JDK path is stored in the <product>.jdk file located in the config folder. It can be modified either via the Change IDE boot JDK action or by manually editing .jdk file (if you can't start the IDE to change it via an action).
  • It's recommended to use the bundled JRE (if available). In case you have any issues with the bundled version, you can switch to the latest Oracle JDK or OpenJDK build available on your system (JDK 11+ is recommended).
  • Check bin/<product>.sh file for the JDK search order, it's similar to Windows in terms of the environment variable names. It's a legacy way to adjust the boot jdk, use it for older product versions. Consider using <product>.jdk file instead (see above), so that your modifications can survive IDE updates/re-installation.
  • Check this answer if you need to install the JDK manually on Linux.
  • If you have problems with ugly fonts, please see this thread comments for the tips.
  • Help | About will show the actual JDK version.

Mac OS X

  • IDE is using the bundled JetBrains Runtime by default.
  • If you override IDE JDK version (via the Choose Runtime plug-in), its path is stored in <product>.jdk file located in the config folder (idea.jdk for IntelliJ IDEA, pycharm.jdk for PyCharm, etc). Delete this file or change the path inside the file manually in case IDE no longer starts and you can't change it via the menu.
  • If IDE doesn't start and this file doesn't exist, create it manually and specify Java path to use (Java home location), for example:
    /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk
164 comments
Comment actions Permalink

Out of curiosity, why don't you package the x64 version or at least have a downloadable package for it instead of requiring folks to pull and build it? 

0
Comment actions Permalink

The link above points to the binary builds, you just download and unpack it into IDEA_HOME/jre64 folder. For example, here is the link to the current Windows version of the custom 64-bit JDK: https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u76b218_windows_x64.tar.gz.

0
Comment actions Permalink

We don't package it by default to save size of the distribution since for the most users 32-bit version will work just fine. 64-bit version is needed only in case you need to use heap sizes higher than 1GB (when working with large projects or many projects at the same time). 64-bit version has more RAM overhead. Bundling both versions would make the download size much larger, bundling only 64-bit version will make it unusable for users on 32-bit systems.

0
Comment actions Permalink

/facepalm

I see, they were over under files. I saw this on the Windows x64 page:

No direct downloads selected for this package.

and ended up wandering into the GitHub page and thinking there was no download from there. Oddly confusing UI, IMO. Thanks. BTW, it would be nice to at least make it an optional "would you like to download and install our 64-bit JRE" in the installer. Then folks could decide if they needed it.

0
Comment actions Permalink

I've added a request at https://youtrack.jetbrains.com/issue/IDEA-158522. Feel free to vote.

0
Comment actions Permalink

Either this is no longer true, or I'm missing something about JDK/JRE differences.

"JDK is bundled with all the product installers and it's recommended that you will use the provided JDK version unless there are any specific issues.

32-bit JDK is located in IDE_HOME\jre directory and is used by the 32-bit product executable."

It seems like this is a JRE and not a JDK, since I cannot choose this as an SDK for a project. I'm by no means an expert on jdk/jre and might be misunderstanding the capabilities, but I would expect a JDK to work as a project SDK. (While I wouldn't with a JRE)

0
Comment actions Permalink

Yes, the wording is confusing, and what we bundle it's technically a Runtime that can be used only for running the IDE, not as a project JDK. It's also not a JRE since JRE doesn't include tools.jar that is required to run IntelliJ IDEA.

0
Comment actions Permalink

See also https://www.jetbrains.com/help/idea/requirements-for-intellij-idea.html:

JRE 1.8 is bundled with distributions for all platforms. You don't need any Java to be installed on your machine in order to run IntelliJ IDEA.

JDK is not required for developing Web, PHP, Ruby or Python projects in IntelliJ IDEA. The standalone JDK installation is required for Java development only.

However, you CANNOT use our bundled JRE for Java development.

0
Comment actions Permalink

How to correct an error?

Gradle sync failed: The newly created daemon process has a different context than expected.
It won't be possible to reconnect to this daemon. Context mismatch:
Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.3\jre,daemonRegistryDir=C:\Users\Admin\.gradle\daemon,pid=5336,idleTimeout=null,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1251,-Duser.country=RU,-Duser.language=ru,-Duser.variant]
Actual: DefaultDaemonContext[uid=5ba9202e-aef4-44bc-835a-0fe9eef55258,javaHome=C:\Java\jdk1.8.0_111,daemonRegistryDir=C:\Users\Admin\.gradle\daemon,pid=4928,idleTimeout=60000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1251,-Duser.country=RU,-Duser.language=ru,-Duser.variant]
Consult IDE log for more details (Help | Show Log)

What value at the JAVA_HOME variable?

 

0
Comment actions Permalink

my computer system is windows 10. i had setted a environment JDK_HOME ,then run idea64.exe, encounter a mistake, it seemly JDK_HOME is not support by idea64.exe. this is violated with above tutorial

0
Comment actions Permalink

What error do you get? Please contact support with more details.

0
Comment actions Permalink

The troubleshooting instructions for Windows includes the following statement: "To run the IDE in 64-bit mode you will need to download and install 64-bit JDK (not JRE) distribution and install it yourself." I do not understand why IntelliJ needs the JDK to "RUN" on windows; I would think an updated JRE sufficient. Presumably, it would be wise to compile software with an updated JDK, so in that respect inclusion of an updated JDK with the IntelliJ installer would be prudent. 

On a second point, am I correct in inferring that the JDK bundled with IntelliJ is that for a 32 bit computer? And that if the computer on which IntelliJ is to be installed is a 64 bit computer, then one must download and install the 64 bit JDK. These days aren't most computers (even laptops) 64 bit? Why not bundle both the 32 and 64 bit JDKs with IntelliJ? At the very least, why not bundle the most commonly used JDK (64 bit) with IntelliJ?

0
Comment actions Permalink

> I do not understand why IntelliJ needs the JDK to "RUN" on windows; I would think an updated JRE sufficient.

IntelliJ IDEA uses compiler APIs which are not available in JRE, therefore it needs JDK to run.

> On a second point, am I correct in inferring that the JDK bundled with IntelliJ is that for a 32 bit computer?

No, it works on both 32-bit and 64-bit.

> And that if the computer on which IntelliJ is to be installed is a 64 bit computer, then one must download and install the 64 bit JDK.

No, it works out of the box. Also, 64-bit JDK is default since 2017.1 version and 32-bit JDK is downloaded by the installer (optional).

> These days aren't most computers (even laptops) 64 bit? Why not bundle both the 32 and 64 bit JDKs with IntelliJ?

See above. 64-bit is default now, 32-bit is an optional download to save size of the installer on Windows.

> At the very least, why not bundle the most commonly used JDK (64 bit) with IntelliJ?

It's bundled since 2017.1 release.

Edited by Serge Baranov
0
Comment actions Permalink

The path given above,  idea.config.path\<product>.jdk, seems to be wrong with the current products. At least the location was empty, and I found the JDKs installed under .WebStorm2017.1/config/jdks.

0
Comment actions Permalink

No, you are mixing up the location of the JDK itself and the location of the text .jdk file that overrides the default JDK.

Edited by Serge Baranov
1
Comment actions Permalink

@Serge, thanks for that. You are indeed correct. The problem was just that this file never gets created, which made me search for alternative locations. 

FYI, there seems to be some kind of logical build error in the Jetbrains Runtime, which you might spot from this:

carlerik@devbox:~/.WebStorm2017.1/config/jdks/jbsdk8u152b845.3_linux_x86/bin$ strings java | grep 1.8.0_76
1.8.0_76-release-845-b3

As you can see from the Version string on the Directory name, I should be running 1.8u152, but the internal strings says it is version 1.8u76. That also makes WebStorm complain about using an old Version.

 

0
Comment actions Permalink

What Java version is displayed in About dialog? What's the output from "~/.WebStorm2017.1/config/jdks/jbsdk8u152b845.3_linux_x86/bin/java -version" command?

Edited by Serge Baranov
0
Comment actions Permalink

$ ~/.WebStorm2017.1/config/jdks/jbsdk8u152b845.3_linux_x86/bin/java -version
openjdk version "1.8.0_76-release"
OpenJDK Runtime Environment (build 1.8.0_76-release-845-b3)
OpenJDK Server VM (build 25.76-b3, mixed mode)

0
Comment actions Permalink

My installation of IntelliJ IDEA Community Edition 2017.2.5 in Linux does not have the idea.jdk file in ~/.IdeaIC2017.2 this page is talking about.

1
Comment actions Permalink

That is the expected behavior, this file is created only if you have customized the runtime.

0
Comment actions Permalink

On this older machine, I'm running IntelliJ IDEA 2017.2.5 Build #IU-172.4343.14, on Windows 7 Pro 64 bit.

I originally installed that IDEA update without its own JDK, or so I thought, and IDEA has been complaining ever since that "IDE's Java runtime (1.8u102) is outdated - this may cause stability issues. Please update to 1.8.0u112 or newer". Tonight I updated Java on the machine itself to jre1.8.0_151, but IDEA still gives the same alert about 1.8u102.

The first option suggested here that I tried was Find Action "Get JB SDK", which finds nothing.

Second was Find Action "Switch IDE boot JDK", which does find that action, and offers two options. 1.8.0_102 (b14) boot, and 1.8.0_152 openjdk (release -915-b12) [bundled]. 1.8.0_102 is selected initially. When I choose 1.8.0_152 and click OK, IDEA reboots, but nothing has changed, the out of date java warning is still there, and opening that action dlg shows 1.8.0_102 as the boot JDK, still.

I tried running IDEA as admin, in case it wasn't able to record that setting for some reason, no difference.

What's going on here?

0
Comment actions Permalink

You probably have an environment variable set which overrides the default runtime and has the priority over the config file which is changed via UI, hence the behavior you are describing.

0
Comment actions Permalink

Thank you Serge, you were right, removed the IDEA_JDK_64 key, restarted IDEA, it's happy.

Does IDEA create that key under some circumstances? I don't remember for certain, but it seems unlikely I would have done that myself.

What's happening with Find Action "Get JB SDK"? Is the info about that on this page out of date?

Thanks again.

0
Comment actions Permalink

IntelliJ IDEA never sets any environment variables, it can be done only manually by the user.

Get JB SDK from Bintray action is still available in IntelliJ IDEA 2017.2.5 when you have installed and enabled JB SDK Bintray Downloader plug-in like described in this document:

Double check the plug-in is installed and enabled: http://www.jetbrains.com/idea/webhelp/enabling-and-disabling-plugins.html.

0
Comment actions Permalink

My apologies, plugin was disabled, all good. Thank you.

0
Comment actions Permalink

Following upgrade to 2017.3, when I try to download a new sdk using the bintray plugin, the download seems to fail. The install button does not become clickable and I cannot find the .tar.gz file on my system.
Are the servers down?

0
Comment actions Permalink

Check the logs for details. Bintray servers are not hosted by JetBrains.

0
Comment actions Permalink

I didn't understand anything.

Please explain me how to change default JDK for Intellij Idea if i can't run Intellij Idea

0

Please sign in to leave a comment.

Have more questions?

Submit a request