当ClassLoader加载libawt_lwawt.dylib时,Swing应用程序挂起

时间:2015-01-17 11:43:47

标签: java macos swing

我的秋千架在打开前冻结。

应用程序在加载扩展JFrame的类时挂起,但不执行第一个构造函数指令:

app = new MyFrame(); // debug reach this point

public class MyFrame extends JFrame{
    public MyFrame(){
        super(); // debug don't reach this point
        ...
    }
}

当从eclipse中暂停线程时,我看到java.lang.ClassLoader正在尝试加载:

  

/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre/lib/libawt_lwawt.dylib

奇怪的是,我的一些应用程序可以使用相同的JDK运行swing UI。

应用程序在从eclipse或命令行启动时挂起

Dev Config

  • MacOS 10.8.5
  • 使用JDK 1.8.0-20的JavaSE 1.8执行环境

从命令行我有:

java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

创建JFrame:

import javax.swing.JFrame;

public class DemoJFrame extends JFrame {

    public DemoJFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new DemoJFrame().setVisible(true);
    }    
}