我得到无法获得System Java编译器。当jsp文件在我的项目中并将其部署到Google App Engine时,请使用JDK,而不是JRE。。所以我尝试了以下方法来解决问题:
但这些都没有解决问题。我怎么解决这个问题?
答案 0 :(得分:35)
将-vm C:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe
添加到eclipse.ini时,请务必将-vm
和C:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe
放在不同的行上
答案 1 :(得分: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
答案 2 :(得分:15)
你能在这里粘贴你的eclipse.ini文件吗? 我刚刚在几天前添加了vm行,它工作正常。
请记住它必须放在-vmargs行之前......
答案 3 :(得分:5)
我有同样的问题并得出结论:
如果使用JRE执行Eclipse,则在部署到App Engine时将使用JRE而不是JDK,即使Preference设置设置为使用JDK也是如此。
解决方案:将JAVA_HOME路径从JRE更改为JDK,并确保JAVA_HOME \ bin包含在PATH中。然后,重新启动Eclipse。
答案 4 :(得分:3)
我在上传示例war留言簿时遇到了同样的错误[“无法获取系统java编译器”]。我安装了JDK,“java -version”可以正确打印版本信息。哪个部分出了问题呢? 问题的原因在于:
除%JAVA_HOME%/ bin目录外,java.exe / javaw.exe也存在于C:\ Windows \子目录中。
upload命令使用c:\ windows \ sub-directory中的java.exe而不是%JAVA_HOME%目录中的java.exe。
的解决方案:强>
将“%JAVA_HOME%/ bin”放在PATH环境变量定义的开头。这应该保证使用%JAVA_HOME%的东西。
答案 5 :(得分:3)
我通过编辑Google App Engine SDK文件夹下的 appcfg.cmd 文件解决了这个问题。
appcfg.cmd 文件位于
{eclipse目录} \ plugins \ com.google.appengine.eclipse.sdkbundle_1.8.8 \ appengine-java-sdk-1.8.8 \ bin
将命令中的 java 字符串更改为jdk文件夹下java.exe的特定位置:
原件:
java -Xmx1100m -cp“%~dp0 .. \ lib \ appengine-tools-api.jar”com.google.appengine.tools.admin.AppCfg%*
更改后:
“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%*
答案 6 :(得分:2)
编辑eclipse ini并添加 的 -vm C:\ Program Files \ Java \ jdk1.7.0_65 \ bin \ javaw.exe 如下(这些行之间):
- launcher.defaultAction 打开文件 -vm C:\ Program Files \ Java \ jdk1.7.0_65 \ bin \ javaw.exe --launcher.appendVmargs
设置JAVA_HOME指向jdk文件夹(C:\ Program Files \ Java \ jdk1.7.0_65)
它非常适合我。
答案 7 :(得分:1)
最后的手段:一个简单但不太优雅的解决方案是卸载所有JRE 。
答案 8 :(得分:0)
转到Windows -> Preferences -> Java -> Installed JREs -> Add...
,然后将JDK文件夹的路径设置为JRE home
。其余字段将自动填写。然后,在列表Installed JREs
中,确保将新添加的JDK标记为默认值。
答案 9 :(得分:0)
确保您的JAVA_HOME环境变量引用JDK主目录,而不是JRE。
答案 10 :(得分:0)
奇怪的是,我突然面对这个问题没有任何改变(除了从Windows 8升级到窗口8.1)。
我能够通过将-vm之前的-vmargs放在eclipse.ini文件中来解决它。
答案 11 :(得分:0)
我做了其他人说的一切,没有任何效果。我不得不改变项目类型:项目 - >属性 - >项目构面并检查动态Web模块。之后,我能够部署该项目。
答案 12 :(得分:0)
我在构建项目时在Android Studio中收到此错误。我在设置中设置了JDK位置(File ==> Settings),它解决了我的问题。
答案 13 :(得分:0)
我更新了所有建议的点以指向我的jdk1.8.0_111而不是jre:Eclipse.ini,系统路径,JAVA_HOME。还从我的路径中删除了Oracle条目:C:\ ProgramData \ Oracle \ Java \ javapath(指向jre)。最后,我找到了另一个引用jre的点,最终修复了它:
在Eclipse中 - >我的项目属性 - > Java构建路径 - > JRE系统库仍然指向我的jre。删除它,做了#34;添加库"并指出我的jdk。重新启动Eclipse,我最终可以使用jsp进行部署。
我回去并删除了JAVA_HOME,它仍然有效(JAVA_HOME会干扰其他构建系统)。
期待找到一个好的命令行构建,这样我就不会使用随机编译器。