簡體   English   中英

從相對路徑加載Java庫

[英]Load java libraries from relative path

我已經編寫了一個使用OpenCV庫的Java程序。 到目前為止,我使用eclipse執行了程序(並在eclipse屬性中設置了Jar的位置)。

這是大學的最終項目。 我的老師現在想在他的計算機上運行該程序。 我如何生成可運行的jar(使用Ant或使用Java代碼),該jar將從特定位置(將位於可執行Jar目錄中的目錄)加載Java OpenCV jar,它將在Linux和Windows上運行(我明白linux使用Jar文件,而Windows使用dll文件)?

我試過使用:

String currentDir = System.getProperty("user.dir");
System.load(currentDir + "/path_to_jar/opencv-248.jar");

(讓我們忽略它僅適用於linux的事實)但是在執行jar時,會發生以下錯誤:

OpenJDK 64位服務器VM警告:您已加載庫/path_to_jar/opencv-248.jar,該庫可能已禁用堆棧保護。 VM將立即嘗試修復堆棧保護。 強烈建議您使用'execstack -c'修復該庫,或將其鏈接至'-z noexecstack'。 線程“主”中的異常java.lang.UnsatisfiedLinkError:/path_to_jar/opencv-248.jar:/path_to_jar/opencv-248.jar:無效的ELF標頭(可能的原因:字節序不匹配)

任何幫助將不勝感激。

對Java可執行文件使用classpath選項。

如果您正在運行OpenJDK,請閱讀http://linux.die.net/man/1/java-java-1.6.0-openjdk上的聯機幫助頁

您應該能夠使用以下內容: java -jar yourapp.jar -cp ./path_to_jar/

另一種選擇是構建一個包含其自身依賴關系的JAR。 以下是我使用搜索字詞“ java create jar include依賴項”找到的一些示例:

使用Maven

使用Eclipse

暫無
暫無

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

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