.dll文件和.so文件

来源:互联网 发布:类似米赚的软件 编辑:程序博客网 时间:2024/06/05 20:36

前言

记得很早之前有一个很流行的病毒,就是以.dll为后缀的文件制作而成,当时只是通过微软更新的系统,修复漏洞就没管了,对当时MAC系统没受到攻击也没有在意,只知道是说这个是windows的漏洞,所以Mac系统都没事。还有一次接触dll是在刚开始使用tomcat的时候,运行tomcat报错,但是可以成功启动tomcat,当时觉得非常奇怪,就上网查,说缺少一个dll文件,然后当时就去查了下dll文件是什么,但是也仅仅限于此而已,后来也就扔下不管了。直到今天因为工作的问题,才又一次去查dll相关的东西,所以,这一次就不能再和以前一样只是看一眼就扔了,必须得记录下来。

.dll与.so

今天有一个功能的实现需要用到ca证书,因为没有接触过ca证书,就直接上服务器上去取了相关文件(项目在windows下开发,在linux上部署)。然后放到本地环境。接着做单元测试的时候,很好,直接gg,报错:cannot find xxx.dll,找不到jni。
我一看dll,这不是我以前看过的嘛,动态链接库文件嘛,怎么会找不到呢,然后找到相关的文件路径,一看,蒙蔽了,路径下压根没有dll结尾的文件呀,什么鬼呀。只有几个so为后缀的文件,然后上网搜索,才发现.so是linux下使用的动态链接库的文件。那么接下来,就开始今天的正题了。

  • .so(shared object)
    Linux中的.so文件 是动态链接的产物 ,也就对应着Windows下的dll。也大多是c/c++编写的,我们Java程序员一般只需要知道怎么用这个so文件就可以了,诚然,我们需要注重基础和原理,不过还是没有必要过早的去研究太多别的语言的东西,还是先好好弄明白自己的大Java吧。
  • ddl
    ddl是windows OS下的动态链接库,也是大多由c/c++编写,我们只需要知道怎么调用,怎么调用呢,掉过JNI。JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。
原创粉丝点击