簡體   English   中英

Linux中的java.lang.UnsatisfiedLinkError

[英]java.lang.UnsatisfiedLinkError in Linux

我已經設法進入一台linux機器來嘗試這個答案中建議的HotKey庫

我已經編譯了示例代碼,現在我運行該程序,我得到以下消息:

[oracle@machine jxgrabkey-0.2.1_i386]$ java -classpath lib/JXGrabKey.jar:Example JXGrabKeyTest

Exception in thread "main" **java.lang.UnsatisfiedLinkError:** /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so)
   at java.lang.Runtime._load(libgcj.so.7rh)
   at java.lang.Runtime.load(libgcj.so.7rh)
   at java.lang.System.load(libgcj.so.7rh)
   at JXGrabKeyTest.main(JXGrabKeyTest.java:17)

我知道如何在Windows中處理這個問題(只需將DLL添加到PATH env var),但我對linux不太確定。

我已經閱讀了一些關於LD_LIBRARY_PATH和其他一些env vars的內容,但我可以使它工作。

有什么建議?

編輯

在mmyers的支持下識別問題並閱讀此線程另一個

我可以說:

我的系統是:Linux 2.6.18-53.el5

我的GCC版本是(是):

GCC-C ++ - 4.1.2-14.el5

GCC-gfortran-4.1.2-14.el5

libgcc中,4.1.2-14.el5

GCC-4.1.2-14.el5

問題是我需要gcc 4.2.0

Aaand顯然我的系統沒有gcc 4.2.0。

我想我必須等待它來或者作者在以前的版本中重新編譯它。

mmyers,非常感謝你的幫助。

你試過-Djava.library.path=/path/to/library嗎?

編輯:重新閱讀錯誤消息,它看起來你正在加載的本機庫試圖鏈接到glibc版本3.4.9,顯然沒有安裝。 你能看看你有什么版本的glibc嗎? 你在運行什么Linux發行版?

EDIT2:問題似乎縮小到libstdc ++。 我即將掌握我的知識,但這個帖子可能很有用。 它建議升級到gcc 4.2; 從評論中,您似乎有4.1.2版本。 如果這不起作用,請告訴我。

subes,JXGrabKey dev這里......

我自己對這個錯誤了解不多,但是你對gcc和/或libstdc ++的關注應該是正確的

我個人使用的是Ubuntu 8.10 atm附帶的gcc版本。 我總是堅持最新版本發貨。

當前版本:g ++(Ubuntu 4.3.2-1ubuntu12)4.3.2

我的機器上安裝了以下libstdc ++軟件包: http//packages.ubuntu.com/intrepid/libstdc++5 http://packages.ubuntu.com/intrepid/libstdc++

希望這有幫助,如果你發現任何有用的東西,請告訴我。 :)也許我必須使用舊版本的gcc編譯jxgrabkey,因此它是向下兼容的? 有沒有人有明智的建議? ^^

暫無
暫無

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

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