简体   繁体   English

java.lang.NoClassDefFoundError: 无法初始化 class java.awt.Toolkit

[英]java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit

I'm working on XUbuntu 13.04 and developing swing applications.我正在使用 XUbuntu 13.04 并开发 swing 应用程序。 As I just wanted to try that application I ran into java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit on startup.因为我只是想尝试该应用程序,所以我在启动时遇到了java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit

I've found several questions about server/client vms and noticed that I have a server VM and that for Linux 64 there is no client VM anymore.我发现了几个关于服务器/客户端虚拟机的问题,并注意到我有一个服务器虚拟机,而对于 Linux 64,不再有客户端虚拟机。 But nevertheless IMHO this problem shouldn't depend on which VM I'm running on.但是恕我直言,这个问题不应该取决于我运行的是哪个虚拟机。

Has anybody else noticed that problem and has solved it?有没有其他人注意到这个问题并解决了它? What am I doing wrong?我究竟做错了什么? With 64bit jdk everything works fine, but when I try to use the 32bit jdk the startup fails.使用 64 位 jdk 一切正常,但是当我尝试使用 32 位 jdk 时启动失败。

Thanks in advance!提前致谢!

PS: Java version is 1.7.0_25 and same with 1.7.0_09 PS: Java 版本是1.7.0_251.7.0_09一样

EDIT编辑

When using headless mode, the following exceptions occur:使用无头模式时,会出现以下异常:

java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1272)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1247)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1349)
    at Main.main(Main.java:218)
Caused by: java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
    at java.awt.Window.<init>(Window.java:535)
    at java.awt.Frame.<init>(Frame.java:420)
    at java.awt.Frame.<init>(Frame.java:385)
    at javax.swing.JFrame.<init>(JFrame.java:180)
    at ..MyFrame.<init>(MyFrame.java:23)

Okay, finally I've found the answer.好吧,我终于找到了答案。 Thanks for the effort!感谢您的努力! The problem is that I had libxtst6 installed but only the 64bit-version of it.问题是我安装了libxtst6但只有它的 64 位版本。

sudo apt-get install libxtst6:i386 did the trick for me. sudo apt-get install libxtst6:i386对我sudo apt-get install libxtst6:i386

How did I find this answer?我是如何找到这个答案的? I ldd ed around a bit, but nothing, as you can see in the following:我稍微ldd了一下,但没有,正如您在以下内容中看到的:

$ ldd jdk1.7.0_25_x86/jre/lib/i386/xawt/libmawt.so
    linux-gate.so.1 =>  (0xf7769000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76ee000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf76c2000)
    libawt.so => jdk1.7.0_25_x86/jre/lib/i386/xawt/../libawt.so (0xf760f000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf75fd000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf74c9000)
    libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf74bf000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf74ba000)
    libXtst.so.6 => /usr/lib/i386-linux-gnu/libXtst.so.6 (0xf74b2000)
    libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf74a2000)
    libjava.so => jdk1.7.0_25_x86/jre/lib/i386/xawt../libjava.so (0xf747e000)
    libjvm.so => not found
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf72d5000)
    /lib/ld-linux.so.2 (0xf776a000)
    libjvm.so => not found
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf72b3000)
    libjvm.so => not found
    libverify.so => java/jdk1.7.0_25_x86/jre/lib/i386/xawt/../libverify.so (0xf72a7000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf72a2000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf729b000)
    libjvm.so => not found

So that was the point when I ended trusting my IDE and started a sample application on the command line.所以这就是我结束信任我的 IDE 并在命令行上启动一个示例应用程序的时候。 And the command line again was nice to me:命令行再次对我很好:

$ jdk1.7.0_25_x86/bin/java Main
Exception in thread "main" java.lang.UnsatisfiedLinkError: jdk1.7.0_25_x86/jre/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
    at java.lang.Runtime.load0(Runtime.java:795)
    at java.lang.System.load(System.java:1061)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1087)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1646)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1668)
    at java.awt.Component.<clinit>(Component.java:595)
    at Main.main(Main.java:5)

Had the missing awt library problem on Ubuntu 20.04.在 Ubuntu 20.04 上出现了缺少 awt 库的问题。 Fixed it by installing openjdk-11-jre:通过安装 openjdk-11-jre 修复它:

sudo apt-get install openjdk-11-jre

Thanks for @Bertram's answer.感谢@Bertram 的回答。 As a complementary, I met similar issue when I'm using Fedora, for anyone who is using CentOS/Fedora and Redhat, please try yum install libXtst .作为补充,我在使用 Fedora 时遇到了类似的问题,对于使用 CentOS/Fedora 和 Redhat 的任何人,请尝试yum install libXtst

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoClassDefFoundError:无法初始化类 - java.lang.NoClassDefFoundError: Could not initialize class java.lang.NoClassDefFoundError:无法初始化类 - java.lang.NoClassDefFoundError: Could not initialize class java.lang.NoClassDefFoundError:无法初始化类java.awt.Component - java.lang.NoClassDefFoundError: Could not initialize class java.awt.Component java.lang.NoClassDefFoundError:无法初始化类business.HibernateUtil - java.lang.NoClassDefFoundError: Could not initialize class business.HibernateUtil Spring:java.lang.NoClassDefFoundError:无法初始化类 - Spring: java.lang.NoClassDefFoundError: Could not initialize class java.lang.NoClassDefFoundError:无法初始化类 XXX - java.lang.NoClassDefFoundError: Could not initialize class XXX java.lang.NoClassDefFoundError: 无法初始化类 | 静态块 - java.lang.NoClassDefFoundError: Could not initialize class | static block java.lang.NoClassDefFoundError: 无法初始化 class - Kotlin Object - java.lang.NoClassDefFoundError: Could not initialize class - Kotlin Object ECLIPSE:java.lang.NoClassDefFoundError:无法初始化类**** - ECLIPSE: java.lang.NoClassDefFoundError: Could not initialize class **** java.lang.NoClassDefFoundError:无法初始化类x - java.lang.NoClassDefFoundError: Could not initialize class x
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM