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

Eclipse,AppEngine:java.lang.RuntimeException:无法获取系统java编译器。请使用JDK,而不是JRE,java,eclipse,google-app-engine,google-eclipse-plugin,Java,Eclipse,Google App Engine,Google Eclipse Plugin,我在尝试部署到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

我在尝试部署到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重新安装到最新版本,重新安装了所有插件,等等。我还使用

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

在顶部和前面的-vmargs.

转到安装了Eclipse的Eclipse文件夹(比如c:\Eclipse)。您将找到eclipse.ini文件,eclipse在启动时使用该文件。 添加以下行 -虚拟机 C:\ProgramFiles\Java\jdk1.7.0\u 25\bin\javaw.exe


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

在我的例子中,我试图重新启动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没有做到这一点+仍然可以在当前版本中使用。同样值得一提的是,在facets/build path&compiler中指定1.7


我看到OP使用的是Google Plugin for Eclipse(GPE),这是不推荐使用的,但这曾经是Eclipse云工具(CT4E)中的一个问题,因此我将在这里留下CT4E的相关答案供参考

事实上,Eclipse云工具的一个缺陷是它没有使用为项目配置的JDK,而是使用用于启动Eclipse进行登台的JDK。错误已修复:


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

不要选择project/facets,而是检查JDKGo的project/Build路径,以命令提示符并键入Path检查问题中已经提到的是JDK还是JRETH。不管它是什么,都不会再发生了,我不记得它是如何解决的。这已经在问题中提到了。不管它是什么,都不会再发生了,我不记得它是怎么解决的。我和你一样也有同样的问题。然而,当我将正确的JDK路径放入eclipse.ini并重新启动eclipse和PC时,它开始工作。我甚至在另一台笔记本电脑上试过,我也注意到了同样的情况。有时,如果您在eclipse“Installed JRE”中添加JDK,在您在eclipse.ini中设置JDK并重新启动eclipse之前,它不想识别JDK。因此,如果有人还在为同样的问题苦苦挣扎,这就是答案。为我工作:)谢谢(在jre中安装了jdk,而不是.ini文件)正确…一切都做得很好,Eclipse需要关闭并重新启动,而不是重新启动。那么它应该会起作用。