【问题标题】:GAE: Cannot get the System Java Compiler. Please use a JDK, not a JREGAE:无法获取系统 Java 编译器。请使用 JDK,而不是 JRE
【发布时间】:2013-06-22 21:18:37
【问题描述】:

尝试将我的应用程序部署到 Google App Engine 服务器时,我收到以下错误: 无法获取系统 Java 编译器。请使用 JDK,而不是 JRE。

我看到的所有解决方案都涉及编辑 eclipse 配置文件,但我没有使用 eclipse。我正在从 dos 提示符下执行 appcfg.cmd。我安装了 jdk,我的 JAVA_HOME 指向它: c:\程序文件\java\jdk1.6.0_43

显然 appcfg.cmd 没有查看 JAVA_HOME。它必须从其他地方获取 JDK 位置。

有什么想法吗?

【问题讨论】:

  • 您是否 100% 确定您安装了 JDK 而未安装 JRE (stackoverflow.com/questions/11037378/…)?如果您有 JDK,请确保 JAVA_HOME 路径已设置且正确。打开 cmd 提示符并输入 set,环境变量列表应滚动,检查是否列出了 JAVA_HOME。
  • 我同时安装了 JRE 和 JDK,但我的 JAVA_HOME 指向 JDK。当我按照你的建议运行 set 时,我看到了这个:
  • JAVA_HOME=c:\program files\java\jdk1.6.0_43
  • JDK 是 JRE 的超集,我认为您不需要安装 JRE - 除非您为其他程序明确这样做。如果需要保留 JRE,可以编辑本地路径以在 JRE 之前选择 JDK。我不在 Windows 上,但尝试设置 PATH=%JAVA_HOME%\bin;%PATH% (我的语法可能已关闭)。
  • 我按照您的建议将 %JAVA_HOME%\bin 放在了路径的开头,现在它可以正常工作了。非常感谢!

标签: google-app-engine


【解决方案1】:

如 cmets 中所述:确保 JDK 在您的 PATH 中排在首位。

【讨论】:

    【解决方案2】:

    我在 appengine sdk 1.8.1 和 sts 3.6.4 上遇到了同样的问题。

    我尝试将 vm 属性添加到 sts.ini 文件,将 %JAVA_HOME% 添加到路径变量的开头。但是没有任何效果,因为我不断收到同样的错误。

    Cannot get the System Java Compiler. Please use a JDK, not a JRE
    

    然后我发现问题出在 Windows\system32\java* 文件上。 appengine 正在从 Windows\system32 读取 java。 共有三个文件。

    java.exe
    javaw.exe
    javaws.exe
    

    我从 JAVA JDK 主页替换了这些文件,因为它们在安装期间来自 JAVA JRE 主页。之后,我重新启动了我的 sts,一切正常,因为我能够毫无问题地部署。

    【讨论】:

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