注意:找到了一种解决方法,我只是想知道问题出在哪里。
大家好,
我正在尝试运行一个在我的 debian 设置上运行的 java *.jar 文件,但无法在全新安装的带有 openjdk-7 的 Ubuntu 上运行。
设置 Ubuntu 15.10,全新安装 64 位 default-jdk,从 xmage.de 下载 XMage.jar。
使用终端 -verbose 选项,我注意到它在以下行冻结:
[loading sun.awt.X11.XKeysym$Keysym2JavaKeycode from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar]
五分钟后我把它杀了。然后我删除了 default-jdk 并安装了 Oracle Java,它可以运行 jar 文件。
我不确定问题出在我身上、Java 版本还是 jar 文件上。有什么想法可以让我找到更多信息吗?我以前从未调试过 Java。
答案1
在我看来,这似乎是 OpenJDK 的问题。rt.jar
是 Java 运行时,包含启动新 JVM 并在其上运行应用程序所需的所有代码。加载时会挂起静态类与处理图形的 X11 相关。您还可以通过它是 API 的一部分来判断这一点AWT
,而 API 是 Java SE 图形库的一部分。
为了正确调试此问题,您可以创建 Java 核心转储,或使用 JDK 工具(例如jstack
转储所有线程)来转储所有线程。不过,如果您不熟悉该主题,搜索这些内容并不容易,因此您可能不想深入研究。