0

我目前正在查看在Mac OS X 上运行时与应用程序崩溃相关的错误。崩溃似乎仅在使用 Java 6 和 Mac OS X 10.5 Update 1(64 位模式)时发生。该问题在 32 位 Mac Java 安装中未出现。

从我通过谷歌阅读的内容来看,这个问题似乎与应用程序正在使用QuickTime 库这一事实有关,这些库似乎在 Java 6 在64 位模式下运行时存在问题。

QuickTime for Java 基于 32 位 Carbon 库,并且已经有效地处于“维护模式”一段时间。不幸的是,有人设法让 JNI(或 JNA?)代码工作,使用 QTKit 解决这个问题将很困难。

相关参考:

4

2 回答 2

0

我的经验是 Mac Java 6 根本无法加载原生 32 位库。另一方面,由于 Java 5 仍然是 Mac OS X 上的默认设置,我仍然将 Java 5 用于那些需要本机库的应用程序,因为我的 Mac 客户使用的是 Java 5。

我意识到这也许不是一个很有帮助的答案,但除非有人能启发我们如何在 Java 6 中使用 32 位本机库,否则这个否定答案是我能做的最好的。

于 2009-07-08T23:48:57.670 回答
0

应用程序包中的 JavaApplicationStub 文件配置为运行库不支持的 x86_64。这对于最新版本的 Java 来说显然是新的。

为了解决问题,请使用 lipo 工具。这是我所做的:

lipo -remove x86_64 JavaApplicationStub -输出 JavaApplicationStub

此外,还建议将 LSArchitecturePriority 键添加到 info.plist。我在主要属性中添加了以下内容:

LSArchitecturePriority i386 ppc

这以首选顺序指定了允许的架构。

http://discussions.apple.com/thread.jspa?messageID=9706490

于 2009-07-09T19:01:42.430 回答