2011-08-05 506 views
1

我已經開發了一個應用程序,在Windows操作系統和myjar文件運行成功在Windows上的external library(DJProject),但當我把myjar帶入macintosh我有異常;如何在mac上運行jar文件

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM 
    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 java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:169) 
    at org.eclipse.swt.graphics.Device.<clinit>(Unknown Source) 
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$InProcess.initialize(SWTNativeInterface.java:559) 
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$InProcess.access$2(SWTNativeInterface.java:558) 
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.initialize_(SWTNativeInterface.java:238) 
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.initialize(NativeInterface.java:71) 
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.open_(SWTNativeInterface.java:316) 
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.open(NativeInterface.java:100) 
    at SwtClassDeneme.runBrowser(SwtClassDeneme.java:58) 
    at SwtClassDeneme.main(SwtClassDeneme.java:49) 

我該如何解決這個問題?

謝謝

回答

0

SWT有本地代碼。所以你必須建立你的包來瞄準你正在瞄準的精確目標。我有點驚訝,你只有32位和64位錯誤,我期望它幾乎會嘗試加載Windows DLL!

您需要配置SWT以定位64位MacOS JVM。如果您使用RCP,則需要不同的OSGi碎片。如果您使用本機SWT,則需要在該級別工作。

一些你需要知道存在於先前提問/回答,看什麼:

Create cross platform Java SWT Application

+0

我怎麼SWT配置到目標64位的MacOS JVM? – hirosima

1

64-bit Eclipse for OSX

抓鬥從安裝64位二進制文​​件SWT。你很幸運,他們最終決定爲OSX創建一個64位的SWT二進制文件,他們之前聲稱他們永遠不會。

plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.6.1.v3655c.jar(最終版本將會不同)應該包含你想要的。

顳評論2011年8月5日

從實用主義角度

也意識到蘋果Lifed結束其在OS X JVM他們無所求與Java做的,但是這是一個不同的爭論。從我的理解是,在OpenJVM工作好鄉親有工作在OS X

顳評論結束

+0

此SDK for Mac,但我改進了Windows上的項目 – hirosima

+0

只是爲了澄清一點,Apple不再希望被迫維護用於OS X的Java(他們不應該這麼做)。他們已經開源所有的工作,雖然他們不再在新系統中包含Java,但試圖運行.JAR會導致一個小問題,詢問您是否想要單擊一下安裝JVM。 – TkTech