tl;dr:如何从带有详细或调试日志记录的 Windows 命令行运行 Tomcat JSP 编译器并编译 JSP 和 Java 代码?
我想为在 Windows 2008 Server 上运行的 Tomcat6 环境做一个简单的 JSP 测试编译。我希望尽可能少地安装“东西”(包括 Ant),因为我将在没有其他理由编译任何 Java 代码的构建网格上执行此操作。完成后我将丢弃编译结果——这只是一个用于早期完整性检查的编译。所以我真的很想避免我不需要的“东西”-with-a-capital-N。
从命令行运行 Tomcat 的 JSP 编译器(Jasper,又名JspC)应该很容易,但事实并非如此。我已经能够说服 JspC 使用以下内容将 JSP 转换为 Java(埋在 BAT 文件中,但这里为简单起见):
"C:\Program Files\Java\jdk1.7.0_17\bin\java" ...
... "-classpath" ".\Jasper\lib\jasper.jar;" ...
... ".\Jasper\lib\servlet-api.jar;" ...
... ".\Jasper\lib\catalina.jar;" ...
... ".\Jasper\lib\tomcat-juli.jar;" ...
... ".\Jasper\lib\ant.jar;" ...
... ".\Jasper\lib\jsp-api.jar;" ...
... ".\Jasper\lib\jasper-el.jar;" ...
... ".\Jasper\lib\el-api.jar" ...
... "org.apache.jasper.JspC" -uriroot ./ -s -v -l whatever.jsp
当然,我会收到一条不错的控制台消息
Aug 20, 2013 12:34:40 PM org.apache.jasper.JspC processFile INFO: Built File: whatever.jsp
和一个org\apache\jsp\src\whatever_jsp.java
文件。但是,如果我添加应该编译为的-compile
JspC 选项,我将没有控制台输出、没有文件和退出代码 1。whatever_jsp.java
whatever_jsp.class
.class
显然有些不对劲。但是由于网络上似乎没有人描述除了作为 Ant 任务之外如何运行 JspC,所以我只知道一个六块包之外的线索。而且我似乎无法说服 JspC 以详细或调试级别记录,所以虽然我确定这是某种设置问题,但我无法获得任何诊断输出。