簡體   English   中英

如何設置 java.library.path 而不必在命令行中指定它

[英]How to set java.library.path without having to specify it on the command line

我正在編寫一個使用 JNI 和 JDK 9 的應用程序。通常,為了測試它,我將我的 Maven 項目編譯並打包到一個 jar 中:

mvn package

然后cd進入target文件夾並運行程序:

java -Djava.library.path={path/to/library} -jar myprogram.jar

這很好,但是如何“永久”設置庫路徑,以便不必每次都在命令行上指定-D選項?

我使用的是 Mac(最新版本,High Sierra 10.13)。 我嘗試將export LD_LIBRARY_PATH添加到我的.bash_profile

我還嘗試在我的 Java main 方法中將其顯式設置為系統屬性,就在開頭:

System.setProperty("java.library.path", "...");

但是這些替代方案都不起作用,正如我所得到的

java.lang.reflect.InvocationTargetException ...
caused by: java.lang.UnsatisfiedLinkError

無論我嘗試什么。 有什么建議? 這是否與我的程序作為可執行 JAR 啟動的事實有關?

在創建類加載器之后設置庫路徑對該類加載器沒有多大作用。

但是,您可以使用 Maven 插件來創建可執行單元。

appassembler-maven-plugin創建一個程序集,其中包含您的 jar、它的依賴項和腳本以運行它以設置類路徑。

maven-assembly-plugin可以創建一個包含其所有依賴項的jar-with-dependencies dependencies。

暫無
暫無

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

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