java.library.path
2014-11-12 11:40
423 查看
设置java.library.path的两种方式:
1、通过启动参数设定 java -Djava.library.path=/jni/library/path Test
2、在代码中设定 System.setProperty("java.library.path", "/jni/library/path");
两种方式的区别:
如果想在程序中加载一些库文件,使用第一种方式指定java.library.path属性时可以正常载入,而使用第二中方式就不行。java.library.path只有在JVM启动的时候读取一次,因此在java代码中更改java.library.path是不起任何作用的。我们还可以在代码中使用System.load("/jni/library/absolute/path")来加载绝对地址指定的本地库。
LD_LIBRARY_PATH:
我们也可以使用LD_LIBRARY_PATH来指定本地库地址,一样会生效。
因为JVM启动时,会使用系统变量LD_LIBRARY_PATH的值来初始化java.library.path属性。
java.library.path默认值
在我的机器上其默认值为:
$JAVA_HOME/jre/lib/i386/server:$JAVA_HOME/jre/lib/i386
:$JAVA_HOME/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
分析:
- 前三个都是JRE中提供的本地库
- 后三个是操作系统的库文件目录
-Djava.library.path 和 LD_LIBRARY_PATH的区别
如果使用 java -Djava.library.path=/jni/library/path 的方式设置的话,会覆盖默认值。其值为:
/jni/library/path
如果使用 export LD_LIBRARY_PATH=/jni/library/path的方式设置的话,会追加其值到默认值中。LD_LIBRARY_PATH的值会插入到JRE本地库之后,操作系统库文件目录之前。其值为:
$JAVA_HOME/jre/lib/i386/server:$JAVA_HOME/jre/lib/i386
:$JAVA_HOME/jre/../lib/i386:/jni/library/path:/usr/java/packages/lib/i386:/lib:/usr/lib
from:http://blog.sina.com.cn/s/blog_48a45b9501015m7v.html
1、通过启动参数设定 java -Djava.library.path=/jni/library/path Test
2、在代码中设定 System.setProperty("java.library.path", "/jni/library/path");
两种方式的区别:
如果想在程序中加载一些库文件,使用第一种方式指定java.library.path属性时可以正常载入,而使用第二中方式就不行。java.library.path只有在JVM启动的时候读取一次,因此在java代码中更改java.library.path是不起任何作用的。我们还可以在代码中使用System.load("/jni/library/absolute/path")来加载绝对地址指定的本地库。
LD_LIBRARY_PATH:
我们也可以使用LD_LIBRARY_PATH来指定本地库地址,一样会生效。
因为JVM启动时,会使用系统变量LD_LIBRARY_PATH的值来初始化java.library.path属性。
java.library.path默认值
在我的机器上其默认值为:
$JAVA_HOME/jre/lib/i386/server:$JAVA_HOME/jre/lib/i386
:$JAVA_HOME/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
分析:
- 前三个都是JRE中提供的本地库
- 后三个是操作系统的库文件目录
-Djava.library.path 和 LD_LIBRARY_PATH的区别
如果使用 java -Djava.library.path=/jni/library/path 的方式设置的话,会覆盖默认值。其值为:
/jni/library/path
如果使用 export LD_LIBRARY_PATH=/jni/library/path的方式设置的话,会追加其值到默认值中。LD_LIBRARY_PATH的值会插入到JRE本地库之后,操作系统库文件目录之前。其值为:
$JAVA_HOME/jre/lib/i386/server:$JAVA_HOME/jre/lib/i386
:$JAVA_HOME/jre/../lib/i386:/jni/library/path:/usr/java/packages/lib/i386:/lib:/usr/lib
from:http://blog.sina.com.cn/s/blog_48a45b9501015m7v.html
相关文章推荐
- 0day-java load dynamic library from any path(java加载任意目录库文件)
- firefox升级后SWT程序错误(java.lang.UnsatisfiedLinkError: no swt-mozilla-gtk-3349 or swt-mozilla-gtk in swt.library.path, java.library.p
- 设置 java.library.path其实是在 Apache Tomcat 的任务栏 Icon中设置
- Could not load 'clearsilver-jni' java.library.path = out/host/linux-x86/lib make: *** [out/target/common/docs/api-stubs-timestam
- java.lang.UnsatisfiedLinkError: no tray in java.library.path
- 0day-java load dynamic library from any path(java加载任意目录库文件)
- java.lang.UnsatisfiedLinkError: no jcom in java.library.path
- java.library.path属性在代码中设置不生效问题(转)
- Oracle Programming Error: no ocijdbc10 in java.library.path
- 启动Tomcat时发生java.library.path错误的解决方法
- 装入本机库 db2jcct2, java.lang.UnsatisfiedLinkError: no db2jcct2 in java.library.path 时产生故障: ERRORCODE=-4472, SQLSTATE=null
- The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
- tomcat启动错误:Native library was not found on the java.library.path
- no j3dcore-d3d in java.library.path
- no sqlite_jni in java.library.path
- no swt-win32-3236 in java.library.path异常解决方案
- 解决no swt-win32-3236 in java.library.path的方法大致有这么两种:
- oci连接oracle9i出现no ocijdbc9 in java.library.path
- java.library.path在哪?
- 问题解决:no JMagick in java.library.path