SWT:在Windows中运行在OSX上开发的应用程序

时间:2013-05-15 14:33:53

标签: java windows macos swt cross-platform

我有一个我在OSX上开发的SWT应用程序,因此它包含了SWT库的Mac版本。

现在我需要在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

我已经添加了Windows版本的SWT库,但这并没有什么区别。我需要Mac库才能继续开发。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:5)

您必须将正确的SWT.jar添加到类路径中。您可以下载它们here

如果要部署Windows,则必须捆绑Windows的swt jar(32位或64位,具体取决于系统)。

如果要创建在所有平台上运行的应用程序,请查看以下文章:

Create cross platform Java SWT Application