【问题标题】:Swing application hanging while ClassLoader load libawt_lwawt.dylib在 ClassLoader 加载 libawt_lwawt.dylib 时,Swing 应用程序挂起
【发布时间】:2015-01-17 22:04:12
【问题描述】:

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

应用程序在加载扩展 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 或命令行启动时都会挂起

开发配置

  • 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)

有什么建议吗?

【问题讨论】:

    标签: java macos swing


    【解决方案1】:

    创建一个 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);
        }    
    }
    

    【讨论】:

    • 谢谢。这不是如何编写代码打开 JFrame 的问题,而是加载 JFrame 本身的问题。我给出的示例代码只是为了阐明程序挂起的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2012-01-10
    • 2013-02-04
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多