Google App Engine with Java - 运行javac.exe编译器时出错

时间:2010-06-03 09:36:59

标签: java google-app-engine

在Windows XP上

刚刚下载和解压缩的谷歌应用引擎java sdk
C:\ Program Files \ appengine-java-sdk

我安装了jdk C:\ Program Files \ Java \ jdk1.6.0_20。

我通过
运行了示例应用程序 appengine-java-sdk \ bin \ dev_appserver.cmd appengine-java-sdk \ demos \ guestbook \ war

然后我访问了localhost:8080找到:
HTTP ERROR 500

访问/的问题。原因是:

Error running javac.exe compiler

引起:

运行javac.exe编译器时出错     at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:473)

如何解决?

我的JAVA_HOME指向 C:\ Program Files \ Java \ jdk1.6.0_20。

我还尝试将 appcfg.cmd 转换为:

@“C:\ Program Files \ Java \ jdk1.6.0_20 \ bin \ java”-cp “%~dp0 .. \ lib \ appengine-tools-api.jar”com.google.appengine.tools.admin.AppCfg%*

它也没有用。

5 个答案:

答案 0 :(得分:5)

我的Linux机器出现了完全相同的错误。当我在eclipse中检查控制台输出时,我发现这是一个权限错误。因此,我直接转到我的jdk目录并检查javac文件的权限。我看到只有root才能执行javac。我通过命令sudo chmod 555 javac向组和其他人授予执行权限然后,我再次尝试并且它有效。

答案 1 :(得分:1)

通常,您希望JAVA_HOME指向安装jdk的目录,而不是您的appengine文件所在的目录。如果JAVA_HOME没有指向你的jdk,那么你就会得到一个错误,说你找不到java编译器。

答案 2 :(得分:1)

我遇到了和你一样的问题。简单的解决方案:创建路径C:\ Program Files \ Java \ jdk(version) \ bin 而不仅仅是C:\ Program Files \ Java \ jdk(version)\

重新启动IDE,它就像魅力一样!

(在包含正确的路径变量之后重新启动cmd时,CMD上的以前未能给出的结果 - “javac -version”结果也会有效)

答案 3 :(得分:0)

在我之前的评论中出错了。为了使它在Windows 7中工作,我必须将JAVA_HOME添加到我的PATH中。否则它会使用其他一些java / javac版本。

答案 4 :(得分:0)

首先,我总是避免使用“Program Files”目录或名称中有空格的任何其他目录 如果无法避免“程序文件”,则将其引用为“Progra~1”或用显式引号括起来,以消除目录名称中可能导致命令行解析器内部和脚本文件出现问题的空间。

其次,定义您的JAVA_HOME环境变量以指向您的jdk实例,例如set JAVA_HOME=C:\java\jdk\jdk1.6.0_20,然后将%JAVA_HOME%\ bin放置在尽可能靠近类路径前面的位置,我会定期将此目录放在类路径的前面,特别是在所有%SYSTEMROOT%目录条目之前。