簡體   English   中英

Java 1.4和Suse 9的32位和64位共享庫行為

[英]Shared Library behavior in 32 bits and 64 bits with Java 1.4 and Suse 9

首先,這可能對所有人來說都是一個很簡單的問題。 但是正如他們所說,如果您不問,您將如何學習?

所以,這是東西:

我們已經開發了此.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位+ JDK 1.4:運行平穩,沒有錯誤返回。

  • Suse 9 Enterprise Server 64位+ JDK 1.4.2_08(32位)+ LIBSTDC ++。SO.6:如果我使用程序的32位庫,它將返回錯誤消息:“線程“ main” 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:不能打開共享對象文件:沒有此類文件或目錄

我嘗試給java -Djava.library.path命令提供MySharedLibrary所在的路徑,但是沒有用。

我的問題是:

如果它的配置與Suse 9 32位完全相同,為什么會在Suse 9 64位中返回錯誤?

我了解架構之間存在差異,好的。 但這不是體系結構編譯的問題,因為在64位的RedHat 5.5中它確實可以運行。

誰能指導我解決這個難題? 我可能有什么解決方案?

謝謝大家,那里的大師們。

您不能從32位JVM鏈接64位庫。 如果要鏈接64位庫,請使用64位Java。

至於未定義的符號。 您可能有一個損壞的鏈接,因為suse缺少了redhat上存在的某些庫。 我認為,如果不進一步了解MySharedLibrary.so就無法回答這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM