Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NetBeans 7.4无法获取系统Java编译器。请使用JDK,而不是JRE_Java_Google App Engine_Netbeans - Fatal编程技术网

NetBeans 7.4无法获取系统Java编译器。请使用JDK,而不是JRE

NetBeans 7.4无法获取系统Java编译器。请使用JDK,而不是JRE,java,google-app-engine,netbeans,Java,Google App Engine,Netbeans,尝试使用NetBeans将项目部署到AppEngine时出错。 我安装了NetBeans插件,可以使用appengine-java-sdk-1.9.0在本地运行应用程序 当我尝试部署该程序时,会收到以下消息: Beginning interaction for module default... 0% Created staging directory at: 'C:\Users\Adi\AppData\Local\Temp\appcfg8079434123068806992.tmp' 5% S

尝试使用NetBeans将项目部署到AppEngine时出错。 我安装了NetBeans插件,可以使用appengine-java-sdk-1.9.0在本地运行应用程序

当我尝试部署该程序时,会收到以下消息:

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.

提前感谢。

我不熟悉NetBeans,但我将为您介绍在Eclipse上解决此问题的步骤,希望您能找到相应的步骤:-

  • 右键单击项目并选择“属性”
  • 转到java构建路径
  • 然后在“库”下点击,滚动至所选的JRE系统库
  • 编辑JRE以指向安装JDK的目录
如果上述操作已经完成,并且您仅在部署时看到此类错误,请执行以下操作

  • 编辑IDE的配置设置文件,并给它以下参数,然后重新启动它,在Eclipse中,它位于Eclipse所在的主目录中,名为
    Eclipse.ini

    -虚拟机 C:/Program Files/Java/jdk1.7.0_51/bin/javaw.exe


我刚刚在以下网站上找到了这个问题的答案: appcfg找不到javac

不幸的是,它比这更复杂。路径中的第一个条目指向C:\Windows\system32。毫无疑问,该文件夹中有一个java.exe,它的主页实际上是C:\Program Files\java\jre6中的JRE。(您可以通过运行一个小型Java程序自己进行测试):

System.out.println(System.getProperty(“java.home”)

AppCfg使用当前运行的JVM的系统属性java.home来查找javac。因为您正在运行属于JRE的java.exe,所以它会在那里查找编译器。不幸的是,没有真正的通用一致或伟大的方法来自动找到最合适的java编译器。对于我们的SDK,规则是需要从SDK而不是JRE运行JVM。正如我在上一篇文章中提到的,只需在路径的前面设置JavaSDK,就可以很容易地实现这一点。比如说,

设置路径=c:\Program Files\Java\jdk1.6.0\bin;%路径%

我们当然一直在考虑如何使这更简单、更防弹


编辑路径后,我可以使用NetBeans将我的应用程序部署到appengine。

首先,这是我在stackoverflow中的第一个答案。请考虑一下,如果我违反了一些规则,不要犹豫告诉我将来有什么错误或应该改变。 我遇到了和阿米尔·罗塞特一样的问题。 我已经安装了捆绑包“Netbeans 8+JDK 8”(来自Oracle网站的JDK-8u25-nb-8_0_1-windows-x64.exe)。此外,我还安装了JDK 7,这是我在不同情况下需要的

在Netbeans中,两个jdk都显示在Tools/Java平台管理器下 爪哇SE

  • JDK1.7
  • JDK1.8(默认)
到目前为止还不错。 当我将JAVA_HOME更改为jdk1.7(C:\Program Files\JAVA\jdk1.7.0_72)时,我仍然得到 java-版本1.8

原因:因为Netbeans

  • 已安装/复制以下3个文件
    • java.exe
    • javaw.exe
    • javaws.exe 进入C:\Windows\System32
  • 从目录C:\ProgramData\Oracle\Java\javapath和
  • 毕竟,设置系统变量路径(非路径)=C:\ProgramData\Oracle\Java\javapath 因此,每当我想使用1.7时,它都不起作用,而是使用1.8。 当我想要部署到GoogleAppEngine时,出现异常:由:java.lang.RuntimeException引起:无法获取系统java编译器。请使用JDK,而不是JRE

    我这样解决:

  • 我删除了上面提到的三个文件(java.exe、javaw.exe、javaws.exe)
  • 我删除了目录C:\ProgramData\Oracle\Java\javapath
  • 我删除了值C:\ProgramData\Oracle\Java\javapath;在系统变量路径中:

  • 之后,我再次尝试在Google Appengine上部署,这次成功了。

    看起来您需要下载JDK:到目前为止,您只下载了JRE。@GeorgeTomlinson是对的。链接:嗨,我已经安装了JDK 7_51。我在这里读到了一些关于这个问题的答案,但只针对eclipse,而不针对NetBeans。谢谢。嗨,我检查了项目属性,它定义了JDK而不是JDE。此外,NetBeans使用“NetBeans.conf”文件,并且正确列出了JDK文件夹。您还有什么建议吗?ThanksHi,我刚刚尝试使用CMD中的appcfg命令部署应用程序,我收到了相同的错误消息“java.lang.RuntimeException:无法获取系统java编译器。请使用JDK,而不是JRE。”