33

我收到无法获取系统 Java 编译器。请使用 JDK,而不是 JRE。当 jsp 文件在我的项目中时,我将它部署到 Google App Engine。所以我尝试了以下方法来解决这个问题:

  1. 将 -vm C:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe 添加到我的 eclipse.ini 中。
  2. 确保 JDK 在我的项目的构建路径中,而不是 jre。
  3. 将 C:\Program Files\Java\jdk1.6.0_43\bin\ 添加到环境变量的 PATH 中。

但这些都没有解决问题。我该如何解决这个问题?

4

14 回答 14

35

添加-vm C:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe到 eclipse.ini 时,请确保将-vmC:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe放在单独的行上

于 2013-05-21T02:29:45.323 回答
30

以下两件事对我有用。

1)确保您的 JAVA_HOME 路径设置为 JDK,并且 JAVA_HOME 包含在 PATH 中。

2) 在 eclipse.ini 中添加以下前两行代码。它应该如下所示。

-vm
C:\Program Files\Java\jdk1.7.0_03\bin\javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m
于 2013-12-26T19:15:41.893 回答
15

你能把你的eclipse.ini文件贴在这里吗?几天前我刚刚添加了 vm 行,它运行良好。

请记住,它必须放在 -vmargs 行之前...

于 2013-05-12T22:52:07.860 回答
5

我遇到了同样的问题并得出结论:

如果使用 JRE 执行 Eclipse,即使 Preference 设置设置为使用 JDK,在部署到 App Engine 时它​​将使用 JRE 而不是 JDK。

解决方案:将 JAVA_HOME 路径从 JRE 更改为 JDK,并确保 JAVA_HOME\bin 包含在 PATH 中。然后,重新启动 Eclipse。

于 2013-05-12T05:24:04.397 回答
4

I solve this problem by editting the appcfg.cmd file under the Google App Engine SDK folder.

The appcfg.cmd file is located at

{eclipse directory}\plugins\com.google.appengine.eclipse.sdkbundle_1.8.8\appengine-java-sdk-1.8.8\bin

Change the java string in the command to the specific location of java.exe under jdk folder:

Original:

java -Xmx1100m -cp "%~dp0..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*

After changing:

"C:\Program Files\Java\jdk1.7.0_45\bin\java.exe" -Xmx1100m -cp "%~dp0..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*

于 2013-12-27T08:26:22.540 回答
3

我在上传示例战争留言簿时遇到了同样的错误[“无法获取系统 java 编译器”]。我安装了 JDK,并且“java -version”可以正确打印版本信息。那么哪一部分出了问题呢?
问题的原因在这里:

除了 %JAVA_HOME%/bin 目录外,java.exe/javaw.exe 也存在于 C:\Windows\ 子目录中。

上传命令使用 c:\windows\ 子目录中的 java.exe,而不是位于 %JAVA_HOME% 目录中的 java.exe。
解决方法:
将“%JAVA_HOME%/bin”放在PATH环境变量定义的头部。这应该保证使用 %JAVA_HOME% 的东西。

于 2013-11-25T08:00:11.427 回答
2
  1. 编辑 eclipse ini 并添加 -vm C:\Program Files\Java\jdk1.7.0_65\bin\javaw.exe 如下(在这些行之间):

    --launcher.defaultAction openFile -vm C:\Program Files\Java\jdk1.7.0_65\bin\javaw.exe --launcher.appendVmargs

  2. 将您的 JAVA_HOME 设置为指向 jdk 文件夹 (C:\Program Files\Java\jdk1.7.0_65)

它对我来说非常有效。

于 2014-11-15T12:35:59.063 回答
1

最后的手段:一个简单但公认不是很优雅的解决方案是卸载所有 JRE

于 2013-04-30T23:11:38.093 回答
0

转到Windows -> Preferences -> Java -> Installed JREs -> Add...然后将 JDK 文件夹的路径设置为JRE home. 其余字段将自动填写。然后,在列表中Installed JREs确保将新添加的 JDK 标记为默认值。

于 2013-04-13T07:44:15.403 回答
0

奇怪的是,我突然遇到了这个问题,没有任何改变(可能除了从 windows 8 升级到 windows 8.1)。

我可以通过将 -vm 放在 eclipse.ini 文件中的 -vmargs 之前来解决它。

于 2014-01-20T15:07:09.613 回答
0

确保您的 JAVA_HOME 环境变量引用 JDK 主目录,而不是 JRE。

于 2013-05-12T05:27:37.873 回答
0

我做了其他人所说的一切,但没有任何效果。我不得不更改项目的类型:Project -> Properties-> Project Facets 并检查 Dynamic Web Module。之后,我能够部署该项目。

于 2015-01-09T23:24:27.053 回答
0

我更新了所有建议的点以指向我的 jdk1.8.0_111 而不是 jre:Eclipse.ini、系统路径、JAVA_HOME。还从我的路径中删除了 Oracle 条目:C:\ProgramData\Oracle\Java\javapath (指向 jre)。最后我又找到了一个引用 jre 的地方,最终修复了它:

在 Eclipse -> 我的项目属性 -> Java 构建路径 -> JRE 系统库中仍然指向我的 jre。删除它,做了“添加库”并将其指向我的 jdk。重新启动 Eclipse,我终于可以使用 jsp 进行部署了。

我回去删除了 JAVA_HOME,它仍然可以工作(JAVA_HOME 会干扰其他构建系统)。

期待找出一个好的命令行构建,所以我没有使用随机编译器。

于 2018-02-12T17:17:58.233 回答
0

构建项目时,我在 Android Studio 中收到此错误。我已经在设置(文件 ==> 设置)中设置了 JDK 位置,它为我解决了这个问题。

于 2016-07-06T06:28:36.787 回答