java system.load()_System.load()与System.loadLibrary()

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相同的目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下 下面我们…

结组项目-四则运算3

团队成员:苗堃(http://www.cnblogs.com/brucekun/p/5294368.html)、罗毅(http://www.cnblogs.com/ly199553/p/5294779.html) PSP总结http://www.cnblogs.com/ly199553/p/5295545.html 本次软件工程老师提出了新任务&a…

java 的io流需要学吗_Java Io流怎么学习呢?

滕泰科技之 io 流流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。根据处理数据…

mysql5.5.20安装_mysql5.5.20安装文档

1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。因此,我们首先要在系统中源码编译安装cmake工具。# wget http://www.doczj.com/doc/e83fe02b7375a417866f8f0a.html/files/v2.8/cmake-2.8…

心里装着你,思念就很美(我要做一个文艺范儿的程序员)

每一个静静的夜里, 都会枕着你的名字悄然入睡。 睡梦里轻轻的将你想起, 深深的把你惦起! 美丽的邂逅在梦里重现, 你我相遇在花开如诗的季节, 春花乱舞迷了你的眼, 你如花般的笑颜却迷了我的心坎。 记忆清晰…

java8新特性以及原因_JAVA8 十大新特性详解

二、Lambda 表达式首先看看在老版本的Java中是如何排列字符串的:List names Arrays.asList("peter", "anna", "mike", "xenia");Collections.sort(names, new Comparator() { Override public int compare(String a…

jsp 嵌入java_关于JSP里的Java语句嵌入问题

是这样的,我用的是Intellij 导入了一个MyEclipse的包(该包已部署在服务器上,所以是没有大错误的)。然后在一个jsp文件出现了个问题:莫名奇妙地println变成了红色,执行的时候就直接抛出异常了。今天刚接触JavaWeb不太懂,到底是怎么…

ecshop 快速添加会员

/*------------------------------------------------------ */ //-- 快速添加会员 /*------------------------------------------------------ */ elseif ($_REQUEST[act] quick_insert) {/* 检查权限 */admin_priv(users_manage);$str1_arr array(0,1,2,3,4,5,6,7,8,9);$s…

python循环计算函数_Python位操作、判断、循环,运算

位运算1、原码、反码和补码计算机内部使用补码来表示2、按位运算实现快速计算(1) 通过^(异或)快速交换两个整数。a^bb^aa^b(2) 通过a&(-a)快速获取a的最后为1 位置的整数。00 00 01 01 -> 5&11 11 10 11 -> -5- - -00 00 00 01-> 14、利用位运算实现整数集合一…

【three.js】库

2019独角兽企业重金招聘Python工程师标准>>> three.js 一个轻量级的webgl库,但是十分强大。 下载地址https://github.com/mrdoob/three.js OrbitControls.js 控制视口的平移、缩放、旋转。 GridHelper.js 生成视口的网格。 转载于:https://my.oschina.…

java split空字符_java split函数结尾空字符串被丢弃的问题

java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误如下:String strtest “1,2,”;String arry[] strtest.split(“,”);这样得到的数组元素个数只是2两个,为什么呢,最后一个”,”后…

域名发散--前端优化(三)

话说天下大势,分久必合,合久必分其实域名也是一样,分分合合, 不管是域名收敛还是域名发散,都有着自己独特的应用场景。目前, 在webs top 30,000 URLS 里面, 平均每个域名承担了50个资源的请求,所…

java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》

Java就该这么学说明这里使用 centos7 的openjdk,不是Oracle的JDKyum search java|grep jdkyum install java-1.8.0-openjdk#set Java environmentexport JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64export CALSSPATH.:$JAVA_HOME/jre/l…

HttpHandler与HttpModule的用处与区别

HttpHandler与HttpModule的用处与区别   问题1:什么是HttpHandler? 问题2:什么是HttpModule? 问题3:什么时候应该使用HttpHandler什么时候使用HttpModule? 答案1:HttpHandler,Htt…

win7变成xp风格了怎么改回_XP退役了,如何把Win7变成XP风格

展开全部方法如下:【步骤62616964757a686964616fe78988e69d8331333365653265①】:在电脑桌面空白处,点击鼠标右键,子菜单选择点击“个性化”【步骤②】:直接选择“基本和高对比主题”里的“Windows经典”模式整理风格发…

org.apache.catalina.LifecycleException: Failed to

2019独角兽企业重金招聘Python工程师标准>>> 文章原创地址:org.apache.catalina.LifecycleException: Failed to start component今天来了个新同事,让他先熟悉一下我们的工程项目,从svn下载下来以后,配置完成却怎么都无…

ef mysql 读写分离_EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一...

/// ///SQL命令拦截器///主要实现EF的读写分离/// public classCommandInterceptor : DbCommandInterceptor{staticCommandInterceptor(){readConnListDistributedReadWriteManager.Instance;sysTimer.Enabled true;sysTimer.ElapsedsysTimer_Elapsed;sysTimer.Start();}/// //…

最近的日子,很惬意!

最近的日子,很惬意;没事就去实验室看看编程,最近开始学习JAVA了,上手很快,有了之前面对对象C的基础,java也觉得不是很难,嗯,加油,有实验室一群优秀的人在我身边&#xff…

fastdfs java token_fastdfs 开启 token 防盗链

环境:fastdfsnginx ngx_fastdfs_modulephpfastdfs_php扩展开启token令牌:vi /etc/fdfs/http.conf#开启http.anti_steal.check_tokentrue#密钥http.anti_steal.secret_key123456重启nginxphp中,通过fastdfs_http_gen_token()函数生成$token,例…

objective-C CollectionView 加深(添加注册头部View)

2019独角兽企业重金招聘Python工程师标准>>> #pragma marc 添加Collection -(void)addConllectionView{//collection的布局方案UICollectionViewFlowLayout *collectionViewLayout[[UICollectionViewFlowLayout alloc]init];//设置位置大小以及布局方案_myCollectio…