2012-08-06 246 views

回答

9

這意味着它無法加載你需要的共享庫。這可能是因爲,

  • 圖書館是不是在你的庫路徑。
  • 的庫沒有合適的名稱,如庫必須libLIBRARY.so在Unix
  • 的庫不可執行。
  • 該庫不適用於您的JVM的OS或位大小。例如一個64位的JVM不會加載一個32位的庫。
  • 您的JRE安裝不正確,無法加載其自己的某個庫。
  • 您正在使用一個共享庫,它需要另一個共享庫,但您沒有。
  • 該DLL不是作爲JNI庫或從JNA使用的。
+0

感謝您的回答。但我使用.dll文件來讀取智能卡。我只是加載該dll文件。 – 2012-08-06 09:30:14

+0

我提出的所有建議仍然適用。 – 2012-08-06 09:35:29

+0

@soljava你不能像從Java那樣加載一個dll文件。要麼它必須是一個JNI DLL,或者你必須使用JNA(或類似的東西,如果存在的話...)。 – maba 2012-08-06 09:47:43

0

我在使用System.loadLibrary時會使用java.libary.path資源。 由於loadLibrary不允許絕對路徑,因此可以使用絕對路徑和加載方法。

System.load(HelloWorld.class.getResource("/dlls/HelloWorld.dll") 
      .getPath()); 
相關問題