我使用Maven建立了一个项目,它只包含一个类-“App”和一个“main”方法,代码如下:
org.eclipse.jetty.server.Server server = new Server();
WebAppContext webContext = new WebAppContext("D:/webroot/webapp", "/web");
server.setHandler(webContext);
server.start();
System.in.read();
本应用在eclipse中可以正常运行,在Chrome中可以浏览网页(jsp)。
然后我将此项目导出到“可运行的 JAR 文件”,使用选项“将所需的库打包到生成的 JAR”中,然后在 Windows 控制台中运行 jar 文件:java -jar app.jar
该应用程序可以运行,但是当我使用 Chrome 浏览网页(jsp)时,它告诉我一个错误:
HTTP ERROR 500 访问 /web/ 时出现问题。原因:java.err.nojdk 原因:
org.apache.jasper.JasperException: java.err.nojdk at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375 ) 在 org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:198) 在 org.apache.jasper.compiler.Compiler 的 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)。生成类(编译器.java:364)
那么如何让jetty server app在没有eclipse的情况下运行呢?