4

我试图在我的本地机器上运行一个项目。

我试图在我的 Mac 10.6.2 上加载从该项目的运行实例中获得的这个 jnilib 文件,

System.load(lib.getAbsolutePath());

然后我抛出了这个异常:

java.lang.UnsatisfiedLinkError, mach-o but wrong architecture

我已经用 file 命令检查了 jnilib:

libScreenMatchProxy.jnilib: Mach-O dynamically linked shared library i386

我猜这是因为 jnilib 文件是用 32 位编译的,而 Mac10.6 附带的 Java 是 64 位的。所以我去Java Preference并设置Java首先使用32位。但它没有用。

如上所述,这个 jnilib 文件是从我的 Mac 上正在运行的项目实例中复制的,所以它应该可以工作。我不明白为什么它在已安装的应用程序中工作,但在我的 Eclipse 中却没有。

4

1 回答 1

3

从 Run Configuration 向 VM 参数添加“-d32”将强制 Eclipse 在 32 位模式下调用 Java。这将解决这个问题。

于 2010-02-18T08:09:20.380 回答