一个简单的问题,即使经过数小时的努力和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 [...]
我试过了:
JAVA_HOME
设置为C:\Program Files\Java\jdk1.6.0_38
IDEA_JDK
什么也没做 gradle -v
在命令行gradle -v
1.6识别为JDK 有没有设置的地方,以避免调用Java 1.7?
'jre选择'算法在这里定义,即它尝试以下内容:
我怀疑你有'gradle.java.home'指向$ IDEA_HOME / bin / idea.properties
尽管丹尼斯的回答帮助我进一步调查,但起初并不成功。
我的第一个发现是,实际上不是gradle是问题,但整个IDE使用Java 7,尽管我的设置说不然。
我有几个问题要打:
Java 7在C:\Windows\System32\
安装了一个java.exe的副本,它在%PATH%
比之前设置的%JAVA_HOME%/bin%
=>删除导致正确拾取所需的%JAVA_HOME%/bin/java.exe
的副本
接下来的问题是,通过idea64.exe
启动IntelliJ仍然使用JDK7,我无法找到改变这种情况的方法
=> 临测试中提示:IDEA插件SystemProperties显示IDE当前使用的所有JAVA-Props =>使用idea.bat
代替具有可配置的方式
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。 我正在寻找一个像一个软弱的答案,这使我疯狂。