【问题标题】:Eclipse, AppEngine: java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JREEclipse,AppEngine:java.lang.RuntimeException:无法获取系统 Java 编译器。请使用 JDK,而不是 JRE
【发布时间】:2013-10-10 16:13:46
【问题描述】:

我在尝试部署到 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

在顶部和 -vmargs 之前。

【问题讨论】:

  • 检查 JDK 的项目/构建路径,而不是项目/构面
  • 转到命令提示符并输入路径检查它是 JDK 还是 JRE
  • 问题中已经提到过。不管它是什么,都不再发生了,我不记得它是如何自行解决的。

标签: java eclipse google-app-engine google-eclipse-plugin


【解决方案1】:

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

将上面的 java 路径更改为您的 JDK 位置。它应该可以使用这个JDK,并且会编译并部署到应用引擎。

【讨论】:

  • 问题中已经提到过。不管它是什么,都不再发生了,我不记得它是如何自行解决的。
  • 我遇到了和你一样的问题。但是,当我将正确的 JDK 路径放入 eclipse.ini 并重新启动我的 eclipse 以及我的 PC 时,它就开始工作了。我什至在另一台笔记本电脑上试过这个,我也注意到了。有时,如果您在 eclipse 'Installed JRE' 中添加 JDK,它不想识别,直到您在 eclipse.ini 中设置它并重新启动您的 eclipse。因此,如果有人仍在为同样的问题苦苦挣扎,这就是答案。
  • 为我工作 :) 谢谢(在安装的 jre 中有 jdk 而不是 .ini 文件)
【解决方案2】:

在我的情况下,我试图 File>Restart Eclipse 但退出并再次运行时无法正常工作

【讨论】:

  • 对...一切正常,Eclipse 需要关闭并重新启动,而不是重新启动。那么它应该可以工作了。
【解决方案3】:

哇!!!我处理这个问题大约 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..

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 2013-08-02
      • 1970-01-01
      • 2012-12-06
      • 2015-07-29
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多