java - JFrame 不可见
问题描述
当初始调用者是在 Tomcat 上运行的作为 Windows 服务运行的 servlet 时,JFrame 不可见。
Apache Tomcat 5 配置为作为 Windows 服务运行。在这个 Tomcat 服务器上运行的 servlet 调用批处理文件script.bat
。此批处理文件执行具有MyClass.java
创建 JFrame 的类的 JAR。
但是,当以下列方式调用时,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 位)
解决方案
推荐阅读
- flutter - 参数类型'Map
' 不能分配给参数类型 'QuerySnapshot - javascript - 当其中一个选项卡中有活动时,使所有选项卡的会话保持活动状态
- cmake - CMake 不会为源文件生成代码覆盖率报告
- ios - 为什么 Expo Location.getBackgroundPermssionsAsync() 函数对 IOS 后台权限请求返回“拒绝”?
- go - 从缓冲通道和非缓冲通道中进行选择
- deployment - 如何在 bitbucket 上构建并在远程服务器上部署和运行?
- django-models - DJANGO。数据库。注册。请求.会话,模型.py
- postgresql - 带有@procedure注释的postgres的Spring数据jpa调用过程抛出异常
- c# - Azure Durable Function 不创建存储表实体
- linux - 无法安装下一个 JS,不断收到 Command 'next' not found,但可以安装...建议