8

我正在构建一个桌面 Java 应用程序。它使用第三方框架进行一些低级工作(它使用 C 语言,我使用过 JNA)。

在我的 Windows 机器上,当我这样做时,Native.loadLibrary("EDSDK.dll", EdSdkLibrary.class, options);它运行良好。在Mac上,当我尝试这样做Native.loadLibrary("EDSDK.framework", EdSdkLibrary.class, options);时会 UnsatisfiedLinkError说:mach-o, but wrong architecture

我的 java 7 版本是 64 位,框架是基于 32 位的。在包含 Java6 的不同 Mac 上,当我以 32 位模式运行 Java 时,应用程序运行良好。这确认抛出的异常是因为 32 位不兼容,我只需要使用 32 位(这很明显)。

这是令人恼火的部分——在 Java 7 中,-d32选项不起作用,Oracle 不再提供 32 位的 Java 7。如何以 32 位运行我的 Java 7,以便我可以使用第三方框架?打开JDK?或者使用 Java 6 并在 32 位模式下使用它。但 Oracle 不再为 Mac 提供 Java 6。

还有其他选择吗??

4

1 回答 1

2

您可以下载Apple Java 6 JDK,其中包含 32 位 JVM。但我怀疑 Java 6 未来的安全更新会有很多,所以你最好掌握一个 64 位版本的本机框架并将其与 Oracle Java 7 一起使用。

于 2013-02-27T12:22:34.723 回答