这期内容当中小编将会给大家带来有关的java库中。路径和LD_LIBRARY_PATH有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
java基本数据类型有哪些
java的基本数据类型分为:1,整数类型,用来表示整数的数据类型。2,浮点类型,用来表示小数的数据类型。3,字符类型,字符类型的关键字是“字符”。4,布尔类型,是表示逻辑值的基本数据类型。
java.library。路径
官方文档的定义是:<代码>搜索路径列表加载库时代码>
从定义我们可以发现,首先是一个列表,也就是说可以包括多个地址,然后这些地址是用来帮助jvm搜索需要加载的库文件的。
设置java.library。路径
最简单的办法就是在启动jvm前通过<代码> java -Djava.library.path=path-to-your-libs 代码>设置这个全局变量。
作用
那么这个地址具体是如何被使用的呢?
当我们调用<代码> System.loadLibrary(库名)代码>时,会调用<代码> Runtime.loadLibary> 代码,然后调用<代码> java/lang/ClassLoader.loadLibrary> 代码。在ClassLoader.loadLibrary中,系统属性<代码> java.library。代码路径>将会被获取,并用来生成需要加载的库的绝对路径,然后将这个绝对路径传给本地方法来调用<代码> dlopen、dlsym> 代码并最终加载这个库。
如果加载失败,会根据实际情况返回三个异常值:
SecurityException吗?如果安全管理器存在及其checkLink方法并# 39;t允许加载指定的动态库
引用>
如果?如果库不存在
NullPointerException吗?如果库名是null可以参考OpenJDK的仓库:
static void loadLibrary (Class fromClass, String 名字, ,,,,,,,,,,,,,,,,,,,,,,,,,,,boolean isAbsolute), { ,,,,,,ClassLoader loader =,,,,,,,,,,,(fromClass ==, null), ?, null :, fromClass.getClassLoader (); ,,,,,,,if (sys_paths ==, null), { ,,,,,,,,,,,usr_paths =, initializePath (“java.library.path"); ,,,,,,,,,,,sys_paths =, initializePath (“sun.boot.library.path"); ,,,,,,,} ,,,,,,,if (isAbsolute), { ,,,,,,,,,,,if (loadLibrary0 (fromClass, new 文件(名称))),{ ,,,,,,,,,,,,,,,返回; ,,,,,,,,,,,} ,,,,,,,,,,,throw new 如果(“停下来# 39;t load 图书馆:,“,+,名称); ,,,,,,,} ,,,,,,,if (loader !=, null), { ,,,,,,,,,,,String libfilename =, loader.findLibrary(名称); ,,,,,,,,,,,if (libfilename !=, null), { ,,,,,,,,,,,,,,,File libfile =, new 文件(libfilename); ,,,,,,,,,,,,,,,if (! libfile.isAbsolute ()), { ,,,,,,,,,,,,,,,,,,,throw new 如果( ,,,“ClassLoader.findLibrary failed 用return an absolute 路径:,“,+,libfilename); ,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,if (loadLibrary0 (fromClass, libfile)), { ,,,,,,,,,,,,,,,,,,,返回; ,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,throw new 如果(“停下来# 39;t load “, +, libfilename); ,,,,,,,,,,,} ,,,,,,,} ,,,,,,,for (int 小姐:=,0,,,小姐:& lt;, sys_paths.length ;,我+ +),{ ,,,,,,,,,,,File libfile =, new 文件(sys_paths[我],System.mapLibraryName(名字)); ,,,,,,,,,,,if (loadLibrary0 (fromClass, libfile)), { null null null null null null null null null null null null null null nulljava中library.path和LD_LIBRARY_PATH有什么区别