【发布时间】:2014-03-18 18:32:39
【问题描述】:
我正在尝试从main(...) 运行一个 Jetty Web 框架,该框架加载一个在运行时加载 JSP 的 Spring Web 上下文。这在 OSX 和 Linux 上使用 mvn exec:java 的命令行效果很好。但是在 Windows 上,运行 Cygwin,我无法让它完全工作。
应用程序加载并且网络上下文似乎构建良好。然而,当第一个 JSP 页面被渲染时,JVM 会即时编译它并抛出以下错误/异常:
org.apache.tools.ant.BuildException: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:105) ~[gwt-dev-2.5.1.jar:na]
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:924) ~[gwt-dev-2.5.1.jar:na]
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757) ~[gwt-dev-2.5.1.jar:na]
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382) [gwt-dev-2.5.1.jar:na]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472) [gwt-dev-2.5.1.jar:na]
...
我已经进行了大量的网络搜索,并在发布之前尝试了很多事情。
-
JAVA_HOME变量设置正确。 - 我确保它指向 JDK 而不是 JRE。
tools.jar文件确实存在于%JAVA_HOME%/lib/tools.jar下。 -
JAVA_HOME路径位于Program Files中,我担心空间不足,但将其替换为Progra~1似乎也不起作用。 - 我们尝试了 Cygwin 下的
mvnshell 脚本和 DOS 下的mvn.bat脚本,但都失败了。
其他人有这个问题吗?我是否需要更改classpath 以以某种方式专门向tools.jar 添加依赖项?也许在pom.xml 中添加了一些东西?提前致谢。
【问题讨论】:
-
您使用的是哪个版本的 maven?你看过ant的源码吗?
-
我使用的是 maven 2.2.1 而我没有使用 ant @SotiriosDelimanolis。
-
无论您的日志产生什么似乎都在使用 ant,我只是假设它是 maven。对于旧版本,是否可能不支持 Java 7(如果您正在使用的话)编译器。
-
呃,对。我想知道我是不是从 gwt-dev 那里扯了一些我不应该是@SotiriosDelimanolis 的废话。感谢您戳我实际查看所有路径。
标签: java jsp jetty classpath exec-maven-plugin