JAVA JNI 调用C/C++库提高运行效率
JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI(Java Native Interface)。
JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。
好,我们现在来着手开发一个用Native方法实现的System.out.print()方法。
首先,我们要设置一个环境变量,用来告诉虚拟机我们的C/C++库放在哪里,我们打开$HOME目录下的隐藏文件.bashrc,在最下面添加一行export LD_LIBRARY_PATH=<你存放库文件的文件夹>
如图:1
然后Log Out,重登录后在终端运行命令echo $LD_LIBRARY_PATH看我们的设置是否成功
如图:2
然后我们建立一个JAVA工程,名为JavaJni,再建立两个文件,一个是我们要实验的JNI类文件,名为He
JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI(Java Native Interface)。
JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。
好,我们现在来着手开发一个用Native方法实现的System.out.print()方法。
首先,我们要设置一个环境变量,用来告诉虚拟机我们的C/C++库放在哪里,我们打开$HOME目录下的隐藏文件.bashrc,在最下面添加一行export LD_LIBRARY_PATH=<你存放库文件的文件夹>
如图:1
![](https://p-blog.csdn.net/images/p_blog_csdn_net/sdnasky/254054/o_JNI-Screenshot1.png)
然后Log Out,重登录后在终端运行命令echo $LD_LIBRARY_PATH看我们的设置是否成功
如图:2
![](https://p-blog.csdn.net/images/p_blog_csdn_net/sdnasky/254054/o_JNI-Screenshot2.png)
然后我们建立一个JAVA工程,名为JavaJni,再建立两个文件,一个是我们要实验的JNI类文件,名为He