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 回答