Java.lang.NoClassDefFoundError: Failed to initialize java.awt.Toolkit class

I am working on XUbuntu 13.04 and developing swing applications. Since I just wanted to try this application, I ran into java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit at startup.

I found a few questions about the vms server / client and noticed that I have a VM on the server, and for Linux 64 there is no longer a client virtual machine. Nevertheless, IMHO, this problem should not depend on which virtual machine I am running on.

Has anyone else noticed this problem and solved it? What am I doing wrong? Everything works fine with 64-bit jdk, but when I try to use 32-bit jdk, starting is not possible.

Thanks in advance!

PS: Java version 1.7.0_25 and same as 1.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) 
+7
java linux swing 32bit-64bit xubuntu
source share
1 answer

Ok, finally I found the answer. Thank you for allowing! The problem is that I installed libxtst6 , but only a 64-bit version.

sudo apt-get install libxtst6:i386 helped.

How did I find this answer? I ldd ed around a bit, but nothing, as you can see in the following:

 $ 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, when I finished trusting my IDE and started the sample application on the command line. And the command line was nice again for 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) 
+29
source share

All Articles