扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、要在java中调用c语言的库,需要使用Java提供了JNI。
创新互联建站-成都网站建设公司,专注网站设计制作、成都做网站、网站营销推广,域名注册,网络空间,网站运营有关企业网站制作方案、改版、费用等问题,请联系创新互联建站。
2、你选择用汇编或者c语言来实现并在java语言中调用他们 下面我们开始编写HelloWorld程序,由于涉及到要编写c/c++代码因此我们会在开发中使用Microsoft VC++工具。
3、首先创建Java文件 HelloJni.java ,并创建native方法。编译Java文件并生成java头文件。创建C语言文件,HelloWorld.c。生成动态链接库文件 libhello.so。设置动态链接库文件的目录。
4、需要JNI(Java Native Interface)技术即,本地调用接口。可以将C、C++、VB等其他编程语言编制的程序代码封装成对用户不可见的底层class。而在java程序中仅声明其方法名和参数表以及返回值即可。
第一,jni方式调用c接口。通过将c语言接口封装为jni的方式直接供java语言调用,这个可以说是最惯用的方式。第二,jna方式调用c接口。jna也是其中一种调用c接口的方式。使用时可以加载动态库.dll或.so,然后调用库中的接口。
可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
(1)创建DLL文件使用某一种C/C++开发工具创建DLL文件,实现某一功能,供Java调用,例如本文在此使用Visual studio 2005创建一个名为testdll的动态库文件。
对于已生成的.h头文件,C/C++所需要做的,就是把它的各个方法具体的实现。然后编译连接成库文件即可。再把库文件拷贝到JAVA程序的路径下面,就可以用JAVA调用C/C++所实现的功能了。接上例子。
具体调用步骤如下:首先创建Java文件 HelloJni.java ,并创建native方法。编译Java文件并生成java头文件。创建C语言文件,HelloWorld.c。生成动态链接库文件 libhello.so。设置动态链接库文件的目录。
首先需要编写一个native的java方法。
它有一个关键字native,表明这个方法使用java以外的语言实现。方法不包括实现,因为我们要用c/c++语言实现它。
java被编译成字节码后由JVM解释执行,java要调用C语言写的程序,那么就必须通过JVM调用,java告诉JVM我要调用本地操作系统的那个程序段(如dll)并要求返回一个结果。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流