首先,这对你们所有人来说可能是一个非常菜鸟的问题。但正如他们所说,如果你不问,你是如何学习的?
所以,事情是这样的:
我们开发了这个 .JAR 文件以在 Java 1.4 下工作,并安装在 SUSE 9 Enterprise Server 中。
我们还在不同的平台上对其进行了测试: - Suse 9 Enterprise Server 32 位 + JDK 1.4.2_08 + LIBSTDC++.SO.6:运行流畅,没有返回错误。
Red Hat 5.5 Server 64 bits + JDK 1.4:运行流畅,没有返回错误。
Suse 9 Enterprise Server 64 位 + JDK 1.4.2_08(32 位)+ LIBSTDC++.SO.6:如果我使用程序的32位库,它会返回错误消息:“线程“主”java.lang 中的异常。 UnsatisfiedLinkError:/usr/lib/MySharedLibrary.so:/usr/lib/MySharedLibrary.so:未定义符号:NFQuality”
但是,如果我使用程序的64位库,它会返回此错误:“线程中的异常”main”java.lang.UnsatisfiedLinkError: /usr/lib64/MySharedLibrary64.so: /usr/lib64/MySharedLibrary64.so: cannot打开共享对象文件:没有这样的文件或目录
我试过用 MySharedLibrary 所在的路径给出 java -Djava.library.path 命令,但它没有用。
我的问题是:
如果它确实具有与 Suse 9 32 位完全相同的配置,为什么它会在 Suse 9 64 位中返回错误?
我知道架构之间存在差异,好吧。但这不是架构编译问题,因为它在 64 位的 RedHat 5.5 中确实可以运行。
谁能指导我解决这个难题?我可能的解决方案是什么?
谢谢你们所有的大师。