我有一个我在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库才能继续开发。我怎么能绕过这个?
答案 0 :(得分:5)
您必须将正确的SWT.jar
添加到类路径中。您可以下载它们here。
如果要部署Windows,则必须捆绑Windows的swt jar(32位或64位,具体取决于系统)。
如果要创建在所有平台上运行的应用程序,请查看以下文章: