北海做网站公司,网站开发技术技巧,企业策划书模板范文大学生,网站页面设计主要包括Java load 和 loadlibrary方法的区别1. 相同点#xff1a;两个方法都是用来装载dll文件#xff0c;不论是JNI库文件还是非JNI库文件。本地方法在被调用时都需要通过这两发方法之一将其加载至内存。2. 不同点a. System.load(String filename) ,参数为dll文件的绝对路径…Java load 和 loadlibrary方法的区别1. 相同点两个方法都是用来装载dll文件不论是JNI库文件还是非JNI库文件。本地方法在被调用时都需要通过这两发方法之一将其加载至内存。2. 不同点a. System.load(String filename) ,参数为dll文件的绝对路径可以是任意路径。System.load(D:\\java\\Test.dll);b. System.loadLibrary(String libname) 参数为dll文件名不包含库文件的扩展名。例如你可以这样载入一个windows平台下JNI库文件System. loadLibrary (Test);注意System.loadLibrary(String libname)和java.library.path变量对应的路经相关此方法加载的文件必须是在java.library.path这一jvm变量所指向的路径中。可以通过如下方法来获得该变量的值System.getProperty(java.library.path);默认情况下在Windows平台下该值包含如下位置1)和jre相关的一些目录2)程序当前目录3)Windows目录4)系统目录(system32)5)系统环境变量path指定目录3. dll依赖加载方式如果你要载入的库文件静态链接到其它动态链接库例如Test.dll 静态链接到dependency.dll, 那么你必须注意1)System.load() 方式System.load(D:\\java\\Test.dll);那么即使你把dependency.dll同样放在D:\\java\\Test下load还是会因为找不到依赖的dll而失败。因为jvm在载入Test.dll会先去载入Test.dll所依赖的库文件dependency.dll而dependency.dll并不位于java.library.path所指定的目录下所以jvm找不到 dependency.dll。你有两个方法解决这个问题一: D:\\java\\加 入到java.library.path的路径中例如加入到系统的path中。load()方法会区path路径寻找依赖库。二: 先加载依赖库再加载当前库//先调用System.load(D:\\java\\dependency.dll);//让jvm先载入dependency.dll然后再调用System.load(D:\\java\\Test.dll);2)System. loadLibrary() 方式System. loadLibrary (Test);只需要把dependency.dll放在任何java.library.path包含的路径中即可也包括和Test.dll相同的目录。