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

我正在研究XUbuntu 13.04和开发摇摆应用程序。 正如我只想尝试该应用程序,我遇到了java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit启动时java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit

我发现了几个有关服务器/客户端虚拟机的问题,并注意到我有一台服务器虚拟机,而对于Linux 64,没有客户端虚拟机了。 但恕我直言,这个问题不应该依赖于我运行的虚拟机。

有没有人注意到这个问题,并解决了它? 我究竟做错了什么? 用64bit的jdk一切正常,但是当我尝试使用32位jdk的启动失败。

提前致谢!

PS:Java版本是1.7.0_25 ,与1.7.0_09相同

编辑

使用无头模式时,会出现以下例外情况:

 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) 

Solutions Collecting From Web of "java.lang.NoClassDefFoundError:无法初始化类java.awt.Toolkit"

好的,最后我找到了答案。 感谢负担! 问题是,我已经安装了libxtst6但只有它的64位版本。

sudo apt-get install libxtst6:i386为我做了诀窍。

我怎么找到这个答案? 我编了一下,但是没有,正如你在下面看到的:

 $ 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 

所以当我结束信任我的IDE并在命令行上启动一个示例应用程序的时候, 命令行再次对我很好:

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