当用命令行启动jetty服务器后,在我们访问jsp页面时候如果出现此类错误:

jetty7是org.apache.jasper.JasperException: java.err.nojdk...

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

请用以下方法解决:

在jetty文件夹下的start.ini文件里有这么一行"-Dorg.apache.jasper.compiler.disablejsr199=true"注释,把这个注释去掉,再启动就不会出现错误了。

这个错误用eclipse启动jetty时不会出现,而用命令行启动时会出现,这个问题应该算apache的jsp引擎的一个bug。在jsp引擎中,如果java版本大于等于1.6.0,则默认会使用JDK自带的java编译器,这个编译器位于JDK中,在JRE中是没有的。但是如果使用JRE启动Jetty,就会报上面的错误。