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+).

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 JB SDK Bintray Downloader plug-in

  1. Install the JB SDK Bintray Downloader plugin (screenshot).
  2. Start the IDE, use Help | Find Action (Ctrl+Shift+A or Cmd+Shift+A on Mac), type "Get JB SDK", 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.
  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 installed runtimes

  1. Start the IDE, use Help | Find Action (Ctrl+Shift+A or Cmd+Shift+A on Mac), type "Switch IDE Boot JDK", press Enter.
  2. Switch IDE Boot JDK dialog appears. Select the version from the drop-down or click "…" entry to specify the custom location. This location has to point to the JDK installation home directory (like c:\Program Files (x86)\Java\jdk1.8.0_112 or /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/ or /usr/lib/jvm/open-jdk).
  3. Please note that using JetBrains Runtime is highly recommended for performance and stability reasons (it fixes many known OpenJDK and Oracle JDK bugs).
  4. Selected location is stored inside the idea.config.path\<product>.jdk file, should you need to revert to the default behavior in case of any problem (like when IDE no longer starts), delete this file or modify the installation path inside.

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 / CLION_JDK / DATAGRIP_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 / CLION_JDK_64 / DATAGRIP_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 / CLION_JDK / DATAGRIP_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 / CLION_JDK / DATAGRIP_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 version of Oracle JDK or OpenJDK available for your system (OpenJDK 1.6 is not supported, please use 1.7 or later versions, JDK 1.8 is recommended and older Java versions are not supported starting from IntelliJ IDEA 16).
  • 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

  • Our latest IDE versions come with the bundled custom JDK 8 which contains the fixes for most known OpenJDK and Oracle JDK bugs. Should you need to use a different Java version, please refer to this blog post.
  • If you override IDE JDK version, 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
110 comments

How can I run Idea 12 with the default Java 6 VM and target code and binaries to Java 7?

0

Project/module SDK and byte code level doesn't depend on the JDK IDEA runs under. JDK is configured for the project/module in the File | Project Structure, refer to help for details.

http://www.jetbrains.com/idea/webhelp/configuring-global-project-and-module-sdks.html

http://www.jetbrains.com/idea/webhelp/compiler-java-compiler.html

0

Serge: did you make a typo for the "JAVA_HOME" env var?

Note under your Windows section that the first 2 occurrences (the first two 5. items) use "JAVA HOME" (no underscore, whereas the last one (the third 4. item) uses "JAVA_HOME" (with an underscore).

"JAVA_HOME" (with an underscore) is THE universal convention, to my knowledge.  I have never seen "JAVA HOME" before, indeed, I think that that space may cause all kinds of problems.

Please confirm what is going on, and correct your original posting if needed.

 

0

Can I change the jdk used for database connections without changing the ide  jdk version?

0

Stephen, why do you need to change the JDK version for the database connections? It's not possible at the moment, IDE JDK is always used.

0

On OSx you can define environment variables in /etc/launcd.conf (create the file if it does not exist).

The variables defined in launchd.conf will be available in Terminal and for all other processes. The downside is that changes to the file are not picked up before restarting your system.

But if you just want to set IDEA_JDK once to 1.7 (instead of changing Info.plist in every EAP install you download) it is a pretty good solution - since it allows you to launch Intellij any way you want.

 

0

Doh - spelled the file name wrong - the correct name is "/etc/launchd.conf".

 

0

If you want to do this the hard way, see

http://codepulsive.blogspot.com.au/2013/05/using-environmentplist-with-mountain.html

and

http://codepulsive.blogspot.com.au/2013/05/setting-environment-variables-in-os-x.html

 

It's the way I keep my shell and GUI environment variables synchronised. Before ML it was easier, using environment.plist, but ML broke that.  The ML solution still works with Mavericks.

 

0

An easier way, that maintains synchronisation of .profile and desktop environments.

http://codepulsive.blogspot.com.au/2013/11/setting-environment-variables-in-os-x.html

 

0

12C seems to be completely broken for La Clojure under Mavericks.  I have a small clojure test project that hangs 12C when I try to open it. I have to force close.

0

It's broader than that for me. 12C seems to hang at the 'scanning files" stage on most projects. Nasty. Thank you Apple for the constant API changes. Is there any information I can forward?  It seems that you know the way out of this, but it is just going to take some time.

0

I've reported the bug: IDEA-116177. In the meantime, though, I seem to have found a fix for it.  I uninstalled the new Wacom Intuous 3 drivers I installed after upgrading to Mavericks. This may be useful information for others.

0

Still hanging if I set IDEA_JDK to Java 7. On this display, I would say that Mavericks is a disgrace to its developers. It is Java-hostile to an advanced degree.

0

hello, I installed webstorm7 and pycharm3.02 in the same time, my os is mavericks. then i change both product files in  /Applications/<Product>.app/Contents/Info.plist to jvm 1.7,

and then webstorm started successfully,but pycharm still need jdk6 to start . why?

0

Li Acerphoenix, most likely WebStorm 7 has a more recent java launcher stub version that doesn't require JDK 1.6 to run, PyCharm 3.0.2 is built from the older platform version which still requires JDK 1.6 to be present, even if you are running under JDK 1.7. This will be resolved in the future updates.

0

After editing the plist, make sure to resign the app bundle to avoid a nagging prompt and intermittent hangs at startup. Create a  code-signing cert, and then run:

    sudo codesign --verbose --force --sign "<CERT COMMON NAME>" /Applications/WebStorm.app/

I verified this with Webstorm 7.0.3 on OS X Mavericks 10.9.2.

0

The IDEA_JDK variable doesn't work on Mac OSX.  But it will in will in IDEA v14: http://youtrack.jetbrains.com/issue/IDEA-123552#comment=27-739506

0

@Tony19

I have changed my JDK version to "1.8*", now that I have Oracle Java 8 installed. I haven't had nag problems after editing the plist, provided I have opened the app at least once before editing.  Admittedly, I've only opened IntelliJ a few times since the change.

0

I edited JVMVersion in the Info.plist file for macOSX to 1.8* and on boot it does complain about early access versions and when I hit about idea it showed 1.8.0_20-ea-b22 x86_64 but when I run a maven project it shows that it is using the 1.7 version JDK  which is OK. I checked the JVMs that are available to use in the /Library/Java/JavaVirtualMachines/ directory and both 1.7x and 1.8x are available. When I enter "java -version" in the console it defaults to 1.8x. I've yet to try java8 for anything but I'm hoping on a new project i can easily use java 8 instead of java 7.

0

Harirao3: The JDK version that IntelliJ runs under is entirely unrelated to the JDK your project runs under.  To change your project JDK go to View --> Open Module Settings --> Project Settings --> Project --> Project SDK

0

Thanks @Henrik, i actually just realized this and have fixed it accordingly! but good to have it written down for reference too

0

I just updated the info.plist on my MacBook Pro to 1.7 (1.7.0_60) and restarted intelliJ. This machine has a retina display, and the GUI became much sharper than when running with Apples 1.6! I know that Oracle did not support retina displays on Mac for 1.7 when it came, but apparently they have fixed that now. It looks really good!

0

Laptop users, please be aware that running under JDK 1.7 or 1.8 will always enable your discrete GPU which will lead to the faster battery drain. It's a known JDK bug. If the battery life is critical for you, consider running under the recommended JDK 1.6 version. You can also try other workarounds, like the third-party gfxCardStatus utility that can forcibly disable the discrete GPU and switch to the integrated one.

0

@Serge Baranov: Could you update this document to reflect for Android Studio and CLion?

0

@Serge, is there any estimate on when IntelliJ will run on Java 8 for Mac? 6 Months a year?

0

@Adrian, as soon as IntelliJ IDEA runs stable on Java 8, we'll switch to this Java version by default on Mac. There are still major issues to resolve and resolution of several issues depends on Oracle. We can't provide any estimates for Oracle, sorry. We have experimental version with bundled Java 8, see my answer here for the details how to get it.

0

Hello. I'm not shure it is right place for question, but there https://www.jetbrains.com/idea/help/configuring-global-project-and-module-sdks.html#comment-1716362147 was been forwarded...

Is it possible run Idea say in JDK 1.7, but run/debug some for example in 1.8? It will be very desired have such per run/debug configurations settings.

 

0

Please sign in to leave a comment.

Have more questions?

Submit a request