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

问题描述 投票:0回答:4

我在尝试部署到 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 ppengine-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 Clipse-kepler-4.3 Clipse.ini
-vm
C:\Program Files\Java\jdk1.7.0_17\bin\javaw.exe

在顶部和 -vmargs 之前。

java eclipse google-app-engine google-eclipse-plugin
4个回答
7
投票

转到安装了 Eclipse 的 Eclipse 文件夹(例如 c:clipse)。您将找到 eclipse 在启动时使用的 eclipse.ini 文件。 添加以下行 -vm C:\Program Files\Java\jdk1.7.0_25 in\javaw.exe

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


1
投票

就我而言,我试图

File>Restart
Eclipse 但在退出并再次运行时不起作用它可以工作


0
投票

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

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

因此,其他人在此问题中的答案是编辑

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


0
投票

我将

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 /构建路径和编译器中指定1.7..

© www.soinside.com 2019 - 2024. All rights reserved.