我如何告诉IntelliJ开始使用Java 1.6 JDK?

一个简单的问题,即使经过数小时的努力和search,

我安装了Java 6和7。

如何告诉IntelliJ以JDK版本1.6开始Gradle构build?

无论我做什么,IntelliJ都会继续开始我的Gradle

"c:\program files\java\jdk1.7.0_10\jre\bin\java" -Dgradle.home=C:\_CODING_\gradle-1.4 [...] 

我试过了:

  • 所有项目模块都设置为使用1.6
  • JAVA_HOME设置为C:\Program Files\Java\jdk1.6.0_38
  • 设置IDEA_JDK什么也没做
  • gradle -v在命令行gradle -v 1.6识别为JDK
  • 重新启动IntelliJ和/或计算机没有改变行为

有没有设置的地方,以避免调用Java 1.7?

'jre选择'算法在这里定义,即它尝试以下内容:

  1. 在“gradle.java.home”系统属性中引用的Java位置(如果有的话);
  2. 'JAVA_HOME'env变量;
  3. 项目jdk;
  4. 在IDE中配置的任何jdk;

我怀疑你有'gradle.java.home'指向$ IDEA_HOME / bin / idea.properties

尽管丹尼斯的回答帮助我进一步调查,但起初并不成功。

我有99个问题,但是Gradle不是一个

我的第一个发现是,实际上不是gradle是问题,但整个IDE使用Java 7,尽管我的设置说不然。

我有几个问题要打:

  1. Java 7在C:\Windows\System32\安装了一个java.exe的副本,它在%PATH%比之前设置的%JAVA_HOME%/bin%

    =>删除导致正确拾取所需的%JAVA_HOME%/bin/java.exe的副本

  2. 接下来的问题是,通过idea64.exe启动IntelliJ仍然使用JDK7,我无法找到改变这种情况的方法

    => 测试中提示:IDEA插件SystemProperties显示IDE当前使用的所有JAVA-Props =>使用idea.bat代替具有可配置的方式

  3. idea.bat仍拒绝使用在%JAVA_HOME%设置的JDK,而是使用捆绑的JRE( %IDEA_HOME%/jre

    =>检查bat文件的内容使我找到解决方案来定义指向%JAVA_HOME% %IDEA_JDK% ,这实际上是在使用绑定的JRE之前bat检查的唯一变量

最后的想法

关于设置正确的JDK / JRE来启动IntelliJ有一些奇怪的问题,但是它完全可行,不需要更改任何属性文件或启动文件,从而使其可以安全地升级。

奖金提示

如果您使用的是Windows,并且需要一个更好的方法来跟踪我使用RapidEE推荐的系统属性。 它的GUI比Windows 95以后的那个丑陋的Windows UI更好。

… 2.5年后:

我使用的IntelliJ IDEA 15.0,我有一个类似的问题:

这个版本的IDEA与JDK 1.8捆绑在一起,我想在JDK 1.7下生成并运行一个Gradle项目

Gradle使用的JDK可以在首选项中配置 (以前可能不是这样):

IDEA>首选项>构建,执行,部署>构建工具> Gradle

…在“使用本地gradle分发”下你应该看到“Gradle JVM”属性。

注:在我的情况下,它似乎只有在系统重新启动后才生效。 如果不能立即使用,请尝试一些东西!

我的问题是:我想运行1.8,但运行1.6。

当我在IntelliJ创意中运行“gradle run”时,我可以看到输出:

 10:50:35: Executing external task 'run'... :compileJava :processResources UP-TO-DATE :classes Exception in thread "main" java.lang.NoClassDefFoundError: org/raig Caused by: java.lang.ClassNotFoundException: org.raig at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) :run FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':run'. > Process 'command '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

我修改了/ Applications / IntelliJ IDEA 14 CE.app/Contents/Info.plist

 <key>JVMOptions</key> <dict> <key>ClassPath</key> <string>$APP_PACKAGE/Contents/lib/bootstrap.jar:$APP_PACKAGE/Contents/lib/extensions.jar:$APP_PACKAGE/Contents/lib/util.jar:$APP_PACKAGE/Contents/lib/jdom.jar:$APP_PACKAGE/Contents/lib/log4j.jar:$APP_PACKAGE/Contents/lib/trove4j.jar:$APP_PACKAGE/Contents/lib/jna.jar</string> <key>JVMVersion</key> <string>1.6*,1.7+</string> 

我在JVMVersion项中添加了“1.8 *”。

 <key>JVMVersion</key> <string>1.8*,1.6*,1.7+</string> 

我重新启动了IntelliJ,运行任务,我得到了:

 Execution failed for task ':run'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

只是为了扩大denis.zhdanov的回应:由于Intellij从古老的问题,没有从bash中从Mac OS X中的“图标点击”调用系统/ env变量 – 你将不得不罚款信息.plist并将该属性添加到该文件以使其工作。 例如:

在你的系统上,找到: / Applications / IntelliJ IDEA 12.app/Contents/Info.plist

编辑文件以在“属性”部分中添加值:

<dict> <key>gradle.java.home</key> <string>/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home</string> </dict>

路径是您的JVM的$ JAVA_HOME。

只需更改项目中的等级属性文件即可:

org.gradle.java.home = /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

或者任何你需要的JDK。 我正在寻找一个像一个软弱的答案,这使我疯狂。