2011-08-05 513 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