Eclipse JNI 共享库"架构字宽不匹配") 错误的 ELF 类 不满意链接错误



我正在使用JNI通过我的java程序访问本机C文件。我已经创建了一个共享对象,eclipse和项目现在可以看到它了。我现在遇到的问题是

线程"main"java.lang.UnsisfiedLink异常错误:/opt/sw/libs/xda_core_java.so:/opt/sw/libs/xda_core/.124.1-1/lib/libxda_core _java.so:错误的ELF类:ELFCLASS64(可能原因:体系结构字宽度不匹配)

so是为64位体系结构制作的二进制文件。听起来JVM不匹配等等。我检查了我的JVM,它是一个64位运行时。然而,当我使用时

System.Property("sun.arch.data.model")返回"32" 我认为eclipse是在32位JVM中运行的,这就是为什么我的JNI Native库无法正确链接,我收到了这个错误。

有什么建议吗?这是因为我有一个32位版本的eclipse吗?或者有没有一种方法可以强制eclipse使用已安装的64位JVM。

编辑:我尝试了所有人的建议,但没有任何效果。我已经更改了执行和环境变量,以指向我拥有的最新JDK 1.6_30。当我从命令行运行程序时,我得到64和amd64作为值,当我在eclise中运行相同的程序时,得到32和i386。eclipse中出现了一些错误,导致它尝试在32位JVM上运行它。当我尝试java-d32版本时,它说没有安装32位环境,但Eclipse不知道。我已经修改了Eclipse.ini文件,但仍然没有任何工作。在这些更改之后,我重新启动了eclipse。。。没有什么能不能找个熟悉eclipse的人在这里帮我。感谢

重新配置Eclipse以使用64位JVM来启动程序,因为您已经构建了64位JNI共享库。

最新更新