2012-01-31 36 views
0

我有幾個'so'文件,我需要在maven java項目中加載而不必使用System.loadLibrary()方法。如何在Maven中自動加載本機依賴關係?

我已經複製了src/main/resources /文件夾中的so文件。我必須在pom.xml中提及它們嗎?

我該怎麼做?

我現在收到此錯誤。在線程 「主要」 java.lang.UnsatisfiedLinkError中

例外:tcl.lang.Interp.commandComplete(Ljava /朗/字符串;)z

回答

0

你說的裝載是什麼意思? Maven是一個構建系統。它會將文件放在你的jar文件中,並將其放在src/main/resources/中。但它不會在運行時影響您的代碼。所以它取決於你的代碼在運行時加載庫。

0

聽起來像你在loadLibrary中的路徑是錯誤的。您知道src/main/resources中的這些文件將被maven複製到目標/類文件夾中,並且可以通過getClass()。getResourcesAsStream()獲得...這可能有助於使用loadLibrary()...

ClassLoader cl = getClass().getClassLoader(); 
url = cl.getResource(name); 
if(url != null) { 
    file = new File(url.getFile()); 
} 
+0

我應該在代碼中加載本機庫嗎?它不是由JVM完成的嗎? – user691197 2012-02-06 09:27:15