java.lang.UnsatisfiedLinkError,mach-o 但 Mac10.6.2 上的架构错误
我试图在本地计算机上运行一个项目。
我尝试加载这个 jnilib 文件,该文件是我在 Mac 10.6.2 上从该项目的运行实例获得的,
System.load(lib.getAbsolutePath());
然后抛出此异常:
java.lang.UnsatisfiedLinkError, mach-o but wrong architecture
我已使用文件命令检查 jnilib:
libScreenMatchProxy.jnilib: Mach-O dynamically linked shared library i386
我猜这是因为 jnilib 文件已编译32位,但Mac10.6附带的Java是64位。所以我先进入Java首选项并将Java设置为使用32位。但这没有用。
如上所述,这个 jnilib 文件是从我的 Mac 上正在运行的项目实例复制的,因此它应该可以工作。我不明白为什么它可以在已安装的应用程序中工作,但不能在我的 Eclipse 中工作。
I was trying to run a project in my local machine.
I tried to load this jnilib file which I got from a running instance of this project on my Mac 10.6.2,
System.load(lib.getAbsolutePath());
then I got this exception thrown:
java.lang.UnsatisfiedLinkError, mach-o but wrong architecture
I have check the jnilib with file command:
libScreenMatchProxy.jnilib: Mach-O dynamically linked shared library i386
I guess this is because the jnilib file is compiled in 32bit but the Java comes with Mac10.6 is 64bit. So I go to Java Preference and set Java to use 32bit first. But it didn't work.
As mentioned above, this jnilib file is copied from a running instance of the project on my Mac, so it should work. I don't understand why it working in the installed application but not in my Eclipse.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将“-d32”添加到运行配置中的 VM 参数将强制 Eclipse 以 32 位模式调用 Java。这将解决这个问题。
Adding "-d32" to the VM argument from Run Configuration will force Eclipse to call Java in 32bit mode. That will solve this problem.