这是我的代码:
Main component = new Main();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(screenSize);
frame.getContentPane().add(component);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
component.start();
当我运行时,没有任何事情发生,所以我把system.out放在每一行,我得出结论它停在了线上:
JFrame frame= new JFrame();
我对发生的事情感到很困惑,因为我在很多时候运行过这个完全相同的代码集,但最近才开始给我带来麻烦。
另外需要注意的是,运行此程序时我没有收到任何错误消息,它只会运行并卡在该行,然后五秒钟后才关闭程序。
我不认为这是我的代码的问题,因为我之前已经多次使用过这段精确的代码。
我已经用java 7和8运行了这个程序,所以也许这是一个计算机问题,所以如果你有 任何 的想法,请告诉我!
[编辑]
以下是重现问题所需的最少代码
public static void main(String args[]){
JFrame frame = new JFrame();
}
答案 0 :(得分:0)
你是说退出在第new JFrame
行没有可见的堆栈跟踪吗?我建议你应用两种跟踪方法:
将您的代码包含在try - catch (Throwable)
块中(仅用于调试目的),并打印出Throwable对象的堆栈跟踪。
更高级:如果你不能以前面的方式得到任何Throwable,可能会在代码的某个深层执行System.exit
。如果是这样,我建议您对SecurityManager进行编程以防止它(参见Preventing System.exit() from API),并在代码中打印出当前的堆栈跟踪,至少知道这个奇怪的System.exit
来自何处。