Jetty 8 无法运行JSP,出现PWC6345问题的原因

红薯 发布于 2010/04/25 17:17
阅读 23K+
收藏 6

网上关于 PWC6345 错误的帖子都是说 Glassfish 的,具体错误信息是

org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

但我今天试用 Jetty 8 同样出现这个问题,问题描述请看这里

摸索了半天终于找到原因了。

我的JDK安装在D盘,JAVA_HOME 也指向安装目录,系统的PATH也设置了D:\JDK\bin

但是安装JDK的时候,安装程序会往C盘的系统目录拷贝Java的可执行文件,其中包括 java.exe,而使用 java -jar start.jar 来启动 Jetty 时则优先使用的是系统目录下的 java.exe ,这样 Jetty 的 JSP 解析器就无法正确获取 JDK 的安装目录而导致此问题发生。

解决的办法,退出 Jetty ,在系统目录下搜索 java.exe ,删掉它并重启 Jetty 即可。

加载中
1
ETmanwenhan
ETmanwenhan

PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

我也碰到这种情况:我的电脑是win8.1,我的解决方法如下:

->右键项目->properties->Libraries->JRE System Library->Edit->Installed JREs->Edit->JRE home->找到JDK文件里面的jre->ok



xtdhwl
xtdhwl
完美解决
steps
steps
的确如此,谢谢
夏碌冬藏
刚才也出现了这样的问题,换成JDK下的JRE就可以了
0
绿悠悠
绿悠悠

Tomcat 就不会出现这种问题,看来也不全是你的环境问题。

0
zt371
zt371

这是和servlet容器选用的java编译器有关。Tomcat默认的编译器是JDT。

0
胡维松

此问题还有一个原因,新建工程的时候有时候没注意使用了java-se也会导致出现该问题。

解决办法指定JRE或是使用默认JRE

0
Terry_Zheng
Terry_Zheng
Linux 下可以用alternatives 指定默认的JDK,包括java 和javac。
0
UlricQin
UlricQin
谢谢,我遇到了这个问题,这样确实可以解决
0
相见欢
相见欢
没用过jetty8,不知道这东西与tomcat相比如何?
红薯
红薯
更轻量级,支持的标准更新一点
0
WEARECAT
WEARECAT

我直接写了个bat来启动的,内容如下:

set JAVA_HOME=C:\jdk6

C:\jdk6\bin\java -jar start.jar

 

我看了下jetty里面的jar包,发现里面其实是有ecj编译器的,把start.ini里面的“-Dorg.apache.jasper.compiler.disablejsr199=true”注释去掉就行了,

bat文件改为:

set JRE_HOME=C:\jdk6

C:\jdk6\jre\bin\java -jar start.jar

0
谯洪敏
谯洪敏

在start.ini里面加入参数也可以搞定.但是原理没搞清楚.虽然能搞定.有谁可以帮忙解释一下吗?jsr199是那个规范 ?

-Dorg.apache.jasper.compiler.disablejsr199=true 
返回顶部
顶部