尝试使用NetBeans将项目部署到AppEngine时出现错误。 我安装了NetBeans插件,我可以使用appengine-java-sdk-1.9.0运行应用程序localy
当我尝试部署程序时,我收到以下消息:
Beginning interaction for module default...
0% Created staging directory at: 'C:\Users\Adi\AppData\Local\Temp\appcfg8079434123068806992.tmp'
5% Scanning for jsp files.
8% Compiling jsp files.
Error Details:
Mar 10, 2014 11:50:04 PM org.apache.jasper.JspC processFile
INFO: Built File: \guestbook.jsp
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.
Unable to update app: Cannot get the System Java Compiler. Please use a JDK, not a JRE.
Please see the logs [C:\Users\Adi\AppData\Local\Temp\appcfg5934545421821565182.log] for further information.
提前致谢。
答案 0 :(得分:5)
首先,这是我在stackoverflow中的第一个答案。请考虑,如果我违反了一些规则,请不要犹豫,告诉我什么是错的,或者将来应该改变。
我遇到像Amir Rossert一样的问题。 我已经安装了Bundle" Netbeans 8 + JDK 8" (来自Oracle网站的jdk-8u25-nb-8_0_1-windows-x64.exe)。另外,我已经安装了JDK 7,这是我在不同情况下所需要的。
在Netbeans中,两个JDK都显示在Tools / Java Platform Manager下 JAVA SE
到目前为止一切顺利。 当我将JAVA_HOME更改为JDK 1.7(C:\ Program Files \ Java \ jdk1.7.0_72)时,我仍然得到 java -version 1.8!?
为什么:因为Netbeans
因此,每当我想使用1.7时,它都没有用,而是使用了1.8。 当我想部署到Google Appengine时,会发生异常:引起:java.lang.RuntimeException:无法获取System Java编译器。请使用JDK,而不是JRE。
我这样解决了:
之后我再次尝试在Google Appengine上进行部署,这次成功。
答案 1 :(得分:2)
我刚刚找到了这个问题的答案: appcfg无法找到javac?1
不幸的是,它比这复杂得多。路径中的第一个条目指向C:\ Windows \ system32。毫无疑问,存在于该文件夹中的java.exe实际上是C:\ Program Files \ Java \ jre6中的JRE。 (您可以通过运行一个小型Java程序自行测试):
的System.out.println(System.getProperty(" java.home&#34));
AppCfg使用当前运行的JVM的系统属性java.home来查找javac。由于您正在运行属于JRE的java.exe,因此它会在那里寻找编译器。不幸的是,自动找到最合适的java编译器并没有真正普遍一致或好的方法。对于我们的SDK,规则是您需要从SDK运行JVM,而不是从JRE运行JVM。正如我在上一篇文章中提到的,只需将Java SDK设置在路径的前面即可轻松实现。例如,
设置PATH = c:\ Program Files \ Java \ jdk1.6.0 \ bin;%PATH%
我们一直在考虑如何使这更简单,更具防弹性。
在编辑PATH之后,我能够使用NetBeans将我的应用程序部署到appengine。
答案 2 :(得分:0)
我不熟悉NetBeans,但我会给你在Eclipse上解决这个问题的步骤,希望你能找到相同的东西: -
如果上述操作已经完成,并且您只在部署时看到此类错误,请执行以下操作
编辑IDE的配置设置文件并为其提供以下参数然后重新启动它,在Eclipse中它位于Eclipse所在的主目录并调用eclipse.ini
。
-vm C:/ Program Files / Java / jdk1.7.0_51 / bin / javaw.exe