java.library.path是什么?

問題說明

項目背景:項目啟動的時候,通過System.loadLibrary("XXX")加載so庫文件。

問題場景:tomcat啟動的時候,localhost.log文件報錯,java.lang.UnsatisfiedLinkError:no XXX in java.library.path。

問題分析:通過報錯信息定位到項目啟動的時候加載不到so庫文件,so庫文件放在jdk/jre/lib目錄下面,考慮so庫文件所在的目錄沒有設(shè)置到j(luò)ava.library.path路徑下面。

什么是java.library.path

PATH:是系統(tǒng)環(huán)境變量,聲明命令搜索的路徑,讓操作系統(tǒng)找到指定的工具程序;

-classpath:Java執(zhí)行環(huán)境找到指定的Java程序?qū)?yīng)的class文件以及程序中引用的其他class文件;

-Djava.library.path:指定非Java類包的位置(如:dll,so等)。

如何配置java.library.path

? ? ????在Windows系統(tǒng)中,通過環(huán)境變量進行設(shè)置,Linux系統(tǒng)中,通過修改環(huán)境變量文件,并且要在修改之后source環(huán)境變量文件使之生效,source之后,需要斷開shell并重新連接之后進行服務(wù)啟動操作。

Java8之前版本配置

Windows:PATH

Linux:LD_LIBRARY_PATH

Mac:DYLD_LIBRARY_PATH

Java8之后版本配置

Windows:PATH

Linux:LD_LIBRARY_PATH

Mac:JAVA_LIBRARY_PATH

在類unix系統(tǒng)中設(shè)置環(huán)境變量的例子:

```

#vi /etc/profile

export?LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/java/jre/lib

#source /etc/profile

```

可以通過命令 #echo $LD_LIBRARY_PATH 查看設(shè)置之后的值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容