当初始调用者是作为Windows服务运行的Tomcat上运行的servlet时,JFrame不可见。
Apache Tomcat 5配置为作为Windows服务运行。在此Tomcat服务器上运行的servlet调用批处理文件script.bat
。该批处理文件将执行具有类MyClass.java
的JAR,该类将创建JFrame。
但是,通过以下方式调用时,JFrame是可见的:
Servlet中用于调用script.bat的代码:
Runtime.getRuntime().exec("cmd.exe /C start /path/to/script.bat");
script.bat的内容
@echo on
SET CP=.;path/to/some.jar
java -cp %CP% com.package.MyClass %1
MyClass.java的内容
public class MyClass {
public void showFrame() {
JFrame frame = new JFrame("My JFrame");
// ...
frame.setSize(360, 150);
frame.setVisible(true);
}
public static void main (String[] args) {
new MyClass().showFrame();
}
}
Java版本:1.5.0_11-b03(32位)
Tomcat版本: 5.5(32位)