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

我有一个在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 

我已经添加了SWT库的Windows版本,但是没有什么区别。 我需要Mac库来继续开发。 我怎样才能解决这个问题?

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

如果您正在为Windows进行部署,则必须捆绑Windows的swt jar(32位或64位,取决于系统)。

如果你想创建一个在所有平台上运行的应用程序,请看这篇文章:

创建跨平台的Java SWT应用程序