Eclipse,AppEngine:java.lang.RuntimeException:无法获取System Java Compiler。 请使用JDK,而不是JRE

尝试部署到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:\用户\克洛伊\应用程序数据\本地的\ 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) 

Imgur

Imgur

我已经清理了项目,将Eclipse重新安装到最新版本,重新安装了所有插件等等。我还编辑了Program Files \ Java \ eclipse-kepler-4.3 \ eclipse.ini with

 -vm C:\Program Files\Java\jdk1.7.0_17\bin\javaw.exe 

在顶部和之前-vmargs。

转到安装了eclipse的Eclipse文件夹(比如c:\ eclipse)。 你会发现eclipse在启动时使用的eclipse.ini文件。 添加以下行-vm C:\ Program Files \ Java \ jdk1.7.0_25 \ bin \ javaw.exe

使用您的JDK位置更改上面的java路径。 它应该能够使用这个JDK并将编译和部署到app引擎。

在我的情况下,我试图File>Restart Eclipse,但退出时不工作,然后再次运行它的工作原理

哇!!! 我正在处理这个问题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没有这样做+仍然使用当前版本。 另外值得一提的是在facet / build path&compiler中指定1.7 ..

在此处输入图像描述

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

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

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