JFrame не виден - PullRequest
       19

JFrame не виден

0 голосов
/ 28 сентября 2018

JFrame не отображается, если исходный вызывающий - это сервлет, работающий на Tomcat, который работает как служба Windows.

Apache Tomcat 5 настроен для работы в качестве службы Windows.Сервлет, который работает на этом сервере Tomcat, вызывает пакетный файл script.bat.Этот пакетный файл выполняет JAR с классом MyClass.java, который создает JFrame.

Однако JFrame отображается при вызове следующими способами:

  • непосредственно из командной строки
  • при нормальной загрузке Tomcat, а не в качестве службы Windows

Код, используемый в сервлете для вызова script.bat:

Runtime.getRuntime().exec("cmd.exe /C start /path/to/script.bat");

Содержимое скрипта.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 бита)

...