0

Eclipse を使用して作成された Java WebStart (javaws) アプリケーションがあります。すべての jar をエクスポートして署名し、.jnlp ファイルなどを書きました。

簡潔にするために一部の OS リソースが削除された簡略化された jnlp ファイルを次に示します。

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.5+"
    codebase="http://www.foobarx.com/"
    href="fhr.jnlp">
    <information>
        <title>Foo Bar</title>
        <vendor>foobarx.com</vendor>
        <homepage href="http://www.foobarx.com" />
        <description>Java App</description>
        <icon href="daffodils.jpg" kind="splash"/>
    </information>

    <security>
        <all-permissions />
    </security>

    <resources>
        <jar href="fhr.jar" />
    </resources>

    <resources os="Windows" arch="x86_64">
        <jar href="swt-4.2.2-win32-win32-x86_64.jar" />
    </resources>

    <resources os="Windows" arch="x86">
        <nativelib href="swt-4.2.2-win32-win32-x86.jar" />
    </resources>

    <resources os="Linux" arch="amd64">
        <nativelib href="swt-4.2-gtk-linux-x86_64.jar" />
    </resources>

    <application-desc main-class="com.foobarx.client.FBXApplication" />
</jnlp>

Linux または Windows XP 32 ビットのブラウザーからアプリを読み込むことができ、問題なく動作します。しかし、Windows 7 64 ビットからアプリをロードしようとすると、次のエラーが発生します。

java.lang.NoClassDefFoundError: org/eclipse/swt/events/DisposeListener

64 ビットの Windows 7 マシンで 32 ビットの JVM が実行されています。これは、ブラウザーが 32 ビットであり、明らかにこれが実行方法であるためです。

Win7/64 で実行すると、Java は SWT メソッドを見つけられませんが、正しい SWT ライブラリ ファイルをロードすることは確認済みです。

マニフェスト ファイルは Eclipse によって生成されたもので、基本的に空です。ドットを入力してクラスパスに現在の作業ディレクトリを追加しようとしましたが、何も変わりませんでした。

要約すると、リモート サーバーでホストされている Java Webstart アプリがあります。Linux または Windows XP 32 ビットのブラウザーから起動できます。32 ビット JVM を使用して Firefox または IE から Windows 7 Pro 64 ビットから起動しようとすると、NoClassDefFound エラーが発生します。問題のクラスは、SWT ライブラリーのクラスです。

質問:

この特定の種類の展開の問題を抱えている人はいますか、または次にどこを見るべきかについてのアイデアはありますか?

あらゆる/すべての助けに感謝します。

4

2 に答える 2