GAE:无法获取系统Java编译器。请使用JDK而不是JRE。

7
尝试将我的应用程序部署到Google App Engine服务器时,我遇到了以下错误: 无法获取系统Java编译器。 请使用JDK,而不是JRE。
我看到的所有解决方案都涉及编辑eclipse配置文件,但我没有使用eclipse。 我正在从dos提示符执行appcfg.cmd。 我已安装jdk,并且我的JAVA_HOME指向它: c:\ program files \ java \ jdk1.6.0_43
显然,appcfg.cmd没有查看JAVA_HOME。 它一定从其他地方获取JDK位置。
有任何想法吗?

你确定你已经安装了JDK而不是JRE吗?(https://dev59.com/2GTWa4cB1Zd3GeqPIfvi)如果你确实安装了JDK,请确保JAVA_HOME路径被设置并且正确。打开命令提示符,输入“set”,一个环境变量列表应该会滚动显示,检查是否列出了JAVA_HOME。 - ikumen
我已经安装了JRE和JDK,但我的JAVA_HOME指向JDK。当我按照您建议的运行set时,我看到了这个: - user2521822
JAVA_HOME=c:\program files\java\jdk1.6.0_43 - user2521822
3
JDK是JRE的超集,我认为您不需要安装JRE——除非您明确为其他程序安装了JRE。如果您需要保留JRE,则可以编辑本地路径以在JRE之前选择JDK。我不在Windows上,但请尝试设置PATH =%JAVA_HOME%\ bin;%PATH%(我的语法可能有误)。 - ikumen
我按照你的建议将%JAVA_HOME%\bin放在了我的路径开头,现在它可以正常工作了。非常感谢! - user2521822
请将那个注释改为答案。我还将两个Java路径交换到开头,现在它可以工作了!谢谢。 - Luke Vo
2个回答

4

如评论中所提到的:确保JDK在你的PATH环境变量中排在第一位。


0

我在使用appengine sdk 1.8.1和sts 3.6.4时遇到了同样的问题。

我尝试在sts.ini文件中添加vm属性,将%JAVA_HOME%添加到路径变量的开头。但是一直出现相同的错误,什么都没有起作用。

Cannot get the System Java Compiler. Please use a JDK, not a JRE

然后我发现问题出在Windows\system32\java*文件上。appengine正在从Windows\system32读取java。 有三个文件。

java.exe
javaw.exe
javaws.exe

在安装过程中,我把这些文件从 JAVA JRE home 替换成了 JAVA JDK home 中的文件。之后,我重新启动了 sts,一切运行正常,我也能够成功部署。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接