JFrame不可见

时间:2018-09-28 10:39:22

标签: java batch-file tomcat jframe windows-services

当初始调用者是作为Windows服务运行的Tomcat上运行的servlet时,JFrame不可见。

Apache Tomcat 5配置为作为Windows服务运行。在此Tomcat服务器上运行的servlet调用批处理文件script.bat。该批处理文件将执行具有类MyClass.java的JAR,该类将创建JFrame。

但是,通过以下方式调用时,JFrame是可见的:

  • 直接从命令提示符
  • 正常启动Tomcat时-不作为Windows服务

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位)

0 个答案:

没有答案