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库文件所在的目录没有设置到java.library.path路径下面。

什么是java.library.path

PATH:是系统环境变量,声明命令搜索的路径,让操作系统找到指定的工具程序;

-classpath:Java执行环境找到指定的Java程序对应的class文件以及程序中引用的其他class文件;

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

如何配置java.library.path

        在Windows系统中,通过环境变量进行设置,Linux系统中,通过修改环境变量文件,并且要在修改之后source环境变量文件使之生效,source之后,需要断开shell并重新连接之后进行服务启动操作。

Java8之前版本配置

Windows:PATH

Linux:LD_LIBRARY_PATH

Mac:DYLD_LIBRARY_PATH

Java8之后版本配置

Windows:PATH

Linux:LD_LIBRARY_PATH

Mac:JAVA_LIBRARY_PATH

在类unix系统中设置环境变量的例子:

```

#vi /etc/profile

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

#source /etc/profile

```

可以通过命令 #echo $LD_LIBRARY_PATH 查看设置之后的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容