1

私は OSX で開発した SWT アプリケーションを持っているので、Mac バージョンの SWT ライブラリが含まれています。

次に、このアプリケーションを Windows マシンで実行する必要があります。アプリケーションを .jar ファイルにエクスポートしますが、Windows で jar を実行しようとすると、次のようになります。

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:

    no swt-cocoa-4236 in java.library.path
    no swt-cocoa in java.library.path
    Can't load library: \\psf\Home\.swt\lib\win32\x86\swt-cocoa-4236.dll
    Can't load library: \\psf\Home\.swt\lib\win32\x86\swt-cocoa.dll

    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
    at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
    at display.StoragePickupDisplay.open(StoragePickupDisplay.java:70)
    at display.StoragePickupDisplay.main(StoragePickupDisplay.java:58)
    ... 5 more

SWT ライブラリの Windows バージョンを追加しましたが、違いはありませんでした。開発を継続するには、Mac ライブラリがそこにある必要があります。どうすればこれを回避できますか?

4

1 に答える 1

5

SWT.jarクラスパスに正しいものを追加する必要があります。ここからダウンロードできます。

Windows 用にデプロイする場合は、Windows 用の swt jar をバンドルする必要があります (システムに応じて 32 ビットまたは 64 ビット)。

すべてのプラットフォームで実行されるアプリケーションを作成する場合は、次の投稿をご覧ください。

クロスプラットフォームの Java SWT アプリケーションを作成する

于 2013-05-15T15:02:49.630 に答える