java.lang.UnsatisfiedLinkError,在Mac10.6.2上的机器错误的架构

时间:2010-02-17 16:44:05

标签: java macos java-native-interface cpu-architecture

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

我尝试加载这个jnilib文件,这是我从Mac 10.6.2上运行的这个项目实例获得的,

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位编译的,但Java随Mac10.6编译的是64位。所以我转到Java Preference并将Java设置为首先使用32位。但它没有用。

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

1 个答案:

答案 0 :(得分:3)

从运行配置向VM参数添加“-d32”将强制Eclipse以32位模式调用Java。这将解决这个问题。