2012-08-14 100 views
1

我試圖從java代碼訪問一個Berkeley DB數據庫文件(比如Test.db),然後想要讀取它的所有對。我正在使用com.sleepycat.db.*com.sleepycat.bdb.*程序包(注意:不是Oracle Berkeley DB JE)來執行此任務。爲了便於實施,我也正是因爲這個BerkeleyDB Java API Tutorialjava.lang.UnsatisfiedLinkError:在java.library.path中沒有db_java-4.2

這樣描述的,當我從Eclipse中運行這個項目,我得到這個錯誤

Exception in thread "main" java.lang.UnsatisfiedLinkError: no db_java-4.2 in java.library.path

,並從堆棧跟蹤,源出於此異常從發生這條線

env = new DbEnv(0); 

我試圖從java命令設置

$java -D<name>=<value>

但它仍然沒有工作。

我的目標是將這個項目導出到一個jar文件中並用它來讀取任何地方的BDB。任何人知道如何擺脫這一點,我感謝你的幫助。如果我可以重定向到任何用於從Java代碼訪問Berkeley DB的工作教程,那將是非常好的。謝謝 !!

回答

0

解決方案:經過大量工作後,我發現我正在使用的Sleepycat API使用通過JNI以C/C++編寫的本機庫。安裝在我的PC上的Berkeley DB沒有共享目標文件db_java-4.2(準確的說,文件名是libdb_java-4.2),這意味着這個BDB沒有爲java API配置。

因此,解決方案是通過啓用java配置再次從頭開始安裝BDB。

+0

請解釋一下如何解決這個問題 – Johny19 2015-10-19 11:15:13

+0

使用'--enable-java'標誌來構建Java支持。這爲Berkeley DB和Berkeley DB XML構建了Java支持 – swenedo 2015-12-06 01:23:41

相關問題