Eclipse、AppEngine:java.lang.RuntimeException:无法获取系统Java编译器。请使用JDK而不是JRE。

12

我尝试部署到Google AppEngine时遇到了这个错误。我已经选择了JDK!

------------ Deploying frontend ------------

Preparing to deploy:
    Created staging directory at: 'C:\Users\Chloe\AppData\Local\Temp\appcfg8759974391667459604.tmp'
    Scanning for jsp files.
    Compiling jsp files.
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.

Debugging information may be found in C:\Users\Chloe\AppData\Local\Temp\appengine-deploy6465203991005024943.log

C:\Users\Chloe\AppData\Local\Temp\appengine-deploy6465203991005024943.log:

Unable to update:
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.
    at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:814)
    at com.google.appengine.tools.admin.Application.compileJsps(Application.java:801)
    at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:615)
    at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:418)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55)
    at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
    at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:155)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
我已经清理了项目,将Eclipse重新安装到最新版本,重新安装了所有插件等。我还编辑了Program Files\Java\eclipse-kepler-4.3\eclipse.ini文件。
-vm
C:\Program Files\Java\jdk1.7.0_17\bin\javaw.exe

在顶部和-vmaargs之前。


请检查项目/构建路径中的JDK,而不是项目/方面。 - pinoyyid
打开命令提示符并输入路径,检查它是JDK还是JRE。 - Yasa
这已经在问题中提到过了。无论它是什么,现在已经不再发生了,我也不记得它是如何解决的。 - Chloe
https://dev59.com/TmYr5IYBdhLWcg3wH2zK - OhadR
4个回答

7

前往Eclipse安装目录(比如c:\eclipse)。您将找到eclipse.ini文件,Eclipse在启动时使用该文件。添加以下行: -vm C:\Program Files\Java\jdk1.7.0_25\bin\javaw.exe

将上述java路径更改为JDK的位置。它应该能够使用此JDK并编译和部署到应用程序引擎。


这已经在问题中提到过了。无论它是什么,现在已经不再发生了,我也不记得它是如何解决的。 - Chloe
3
我曾遇到和你一样的问题,但是当我在eclipse.ini中添加了正确的JDK路径并重新启动了eclipse以及电脑后,它开始正常工作了。我甚至在另一台笔记本电脑上尝试了这个方法并且发现同样有效。有时如果你在eclipse的“已安装JRE”选项中添加了JDK,它可能无法识别,直到你在eclipse.ini中进行设置并重新启动eclipse。所以如果还有人遇到同样的问题,这就是答案。 - Suvoraj Biswas
对我有用 :) 谢谢(安装了JDK和JRE而不是.ini文件) - Srinath Ganesh
https://dev59.com/TmYr5IYBdhLWcg3wH2zK - OhadR

1
在我的情况下,我试图使用文件>重新启动 Eclipse,但当退出并再次运行时不起作用。

没错...所有步骤都正确完成后,需要关闭Eclipse并重新启动,而不是重启。然后它应该可以正常工作了。 - Syed Priom

0

哇!!!我处理这个问题已经3-4个小时了。我正要发表评论说他妈的放弃了。但是然后我把eclipse.ini改成了:

-vm
A:/Programming/Java/jdk1.8.0_73/bin/javaw.exe

改为:

-vm
A:/Programming/Java/jdk1.7.0_79/bin/javaw.exe

成功了!

为什么会成功呢?我也不太确定。我需要的是1.7而不是1.8...但1.7一直指向JRE而不是JDK...令人惊讶的是,1.8没有这个问题,并且仍然可以与当前版本一起使用。还值得一提的是,在facets /build path & compiler中要指定1.7。

enter image description here


0

我看到OP正在使用已经被弃用的Google Plugin for Eclipse(GPE),但这曾经也是Cloud Tools for Eclipse(CT4E)的问题,因此我将在此为CT4E留下一个相关答案供参考。

确实,Cloud Tools for Eclipse存在一个错误,它没有使用项目配置的JDK,而是使用启动Eclipse进行分段的JDK。该错误已经得到修复:https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/2195

因此,本问题中其他答案中编辑eclipse.ini以更改启动Eclipse的JDK的方法是不再需要的临时解决方法。只需更新到最新的CT4E版本并为项目设置JDK即可。您可以在eclipse.ini中指定启动Eclipse所需的任何JDK/JRE。


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