无法退出Java JVM

时间:2012-09-17 00:42:14

标签: java multithreading jvm

我写了一个简单的Java程序。首先我将组件添加到类中,扩展JWindow,然后显示。

public class G4TestWindow extends JWindow {

    public G4TestWindow(){
        JLabel hah=new JLabel("Wooh");
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(hah);
        pack();
        setVisible(true);
    }
}

并在主要课程中启动。

public class G4Test extends JWindow {

    public static void main(String []args){
        G4TestWindow g4tw=new G4TestWindow();   
        System.exit(-1);
    }
}

但即使我使用System.exit(-1),它也无法退出java JVM。 经过多次尝试后我发现原因是genContentPane().add(hah)(如果我把它排除在外,JVM会正常退出)。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

不确定为什么会失败。它到达System.exit并退出我的系统(Mac上为JDK 1.6),即使是“.add(hah)。

但是,您没有正确使用BorderLayout布局管理器。使用BorderLayout时,无论何时添加组件,都需要指定区域,例如:

getContentPane().add(hah, BorderLayout.CENTER);

尝试修复此问题,看看是否可以获得更好的结果。