4

Java 6 に移植しようとしている Java アプリケーションを NT ボックスで実行する必要があります。

その上でJava 5を実行できますが(公式にはサポートされていません)、Java 6を実行しようとすると、次のエラーが発生します。

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre1.6.0_05\bin\awt.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at sun.security.action.LoadLibraryAction.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
    at sun.awt.DebugHelper.<clinit>(Unknown Source)
    at java.awt.EventQueue.<clinit>(Unknown Source)
    at javax.swing.SwingUtilities.invokeLater(Unknown Source)
    at ui.sequencer.test.WindowTest.main(WindowTest.java:136)

誰でもこれを解決する方法を知っていますか?

これは、名前にスペースが含まれていない別のディレクトリに Java 実行可能ファイルを移動しても持続します。

psアップグレードする必要があることはわかっていますが、それは私や私の会社次第ではありません-これは私たちが協力している非常にバグの多い巨大な会社であり、NTをさらに5年間保持する予定です。

4

3 に答える 3

2

OK、すべての視聴者と@RoelSpikerと@Partyzantの回答に感謝します。

それはできません。NTボックスにwindows2000をインストールしない限り、そうではありません。これは、awt.dll fr J6SEがWindowsOSの一部であるUser32.dllの新しいメソッドを使用しているためです(kernel.dllなどにリンクされています)。dll依存関係ウォーカーを使用して、自分の目で確かめてください。別の可能な解決策は、WindowsNTで利用可能な他の方法を使用するようにOpenJDKをわずかに変更することです。

于 2008-10-03T09:16:10.367 に答える
1

Java SE 6には、少なくとも Windows 2000が必要です。

于 2008-09-30T10:14:00.640 に答える
1

AWT、Swing、SWT などの GUI を使用していない場合は、アプリケーションをヘッドレス モードで起動してみてください。詳細については、 http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/を参照してください。ヘッドレス モードで Java を起動するには、次を使用します。java -Djava.awt.headless=true

UnsatisfiedLinkError を処理します。それが唯一の障害かどうかはわかりませんが。

于 2008-09-30T11:12:26.663 に答える