web-dev-qa-db-ja.com

java.lang.NoClassDefFoundError:クラスJava.awt.Toolkitを初期化できませんでした

XUbuntu 13.04に取り組んでいて、swingアプリケーションを開発しています。そのアプリケーションを試したかったので、起動時にJava.lang.NoClassDefFoundError: Could not initialize class Java.awt.Toolkitに遭遇しました。

サーバー/クライアントのVMに関するいくつかの質問を見つけましたが、サーバーVMがあり、Linux 64にはクライアントがないことを確認しましたVMです。しかし、それにもかかわらず、この問題は、私が実行しているVMに依存するべきではありません。

他の誰かがその問題に気づいて解決しましたか?何が悪いのですか? 64ビットの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)
8

さて、最後に私は答えを見つけました。努力をありがとう!問題は、私がlibxtst6インストール済みですが、64ビットバージョンのみです。

Sudo apt-get install libxtst6:i386トリックをしてくれました。

どのようにしてこの答えを見つけましたか?次のように、私は少しlddedしましたが、何もありません。

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