Java与C语言混合编程方法.pdf
《Java与C语言混合编程方法.pdf》由会员分享,可在线阅读,更多相关《Java与C语言混合编程方法.pdf(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件导刊2 0 0 75月号作者简介:何维(1 9 8 2-),男,湖北武汉人,研究方向为计算机软件与应用。J a v a 与C 语言混合编程方法探讨何维(武汉科技大学中南分校 现代教育技术学院,湖北 武汉,4 3 0 2 2 3)摘要:结合实例讨论了J a v a语言与C语言结合编程的方法。关键词:J a v a;C语言;本地接口;链接库中图分类号:T P 3 1 2 J A文献标识码:A文章编号:1 6 7 2-7 8 0 0(2 0 0 7)0 5-0 1 1 8-0 20前言J a v a语言具有分布式、多线程、安全高效和“与平台无关”等诸多优点,但正因其跨平台的特性,使得它与本地机器
2、的内部联系成为其薄弱环节。例如,如何让J a v a程序控制硬件的驱动程序,或者是让J a v a程序和用其它编程语言编写的硬件接口相互通信。C语言程序和C+程序可以控制底层硬件。J a v a语言与C语言结合起来编程,能很好地解决J a v a程序对硬件接口的各类操作问题。1 J a v a结合C语言编程原理在J a v a代码中可以建立一种本地方法,称作“J a v a本地接口”(J a v a N a t i v e I n-t e r f a c e),但并不具体实现其功能。用J a v a编译器将包含此方法的J a v a源代码编译成与平台无关的二进制字节码。然后用J a v a h
3、命令将此c l a s s文件转换成扩展名为h的C语言头文件。在转换过程中,J a v a h命令将只能在J a v a虚拟机上运行的二进制代码转换成可以被C语言编译器所识别的源代码。将此头文件包含在C语言的源代码中,用C语言来实现此本地方法的具体功能,即编写此方法所对应的C语言函数。最后将C语言源文件编译成对应平台的动态链接库文件,以便J a v a程序和C程序所调用。2声明本地接口在J a v a程序中,首先声明一个作为接口的本机方法,关键字是n a t i v e:/C P J a v a.J a v ap u b l i c c l a s s C P J a v a p u b l
4、i c n a t i v e v o i dC J N a t i v e();s t a t i c S y s t e m.l o a d L i b r a r y(C J L i b );p u b l i c s t a t i c v o i dm a i n(S t r i n g a r g s)n e wC P J a v a().C J N a t i v e();代码中的S y s t e m.l o a d L i b r a r y()负责加载动态链接库文件。由于编译器在执行此类时,要首先执行s t a t i c代码段,所以也同时下载了l o a d L i b
5、r a r y方法中的动态链接库文件。这里的库文件扩展名不用标明,系统会根据所在系统平台来判断是哪种类型。需要注意的是,在此例中作为本地接口的C J N a t i v e方法一定要标明n a t i v e类型,但不需要具体实现,参数也可不写。如果需要,可加入参数,例如:p u b l i c n a t i v e v o i dC J N a t i v e(i n t i);3编译并创建C语言头文件通过J a v a c命令将C P J a v a.J a v a源程序编译成C P J a v a.c l a s s程序文件:J a v a c C P J a v a.J a v a再
6、用J a v a h命令生成扩展名为h的头文件:J a v a h-j n i C P J a v a在同一目录中生成了C P J a v a.h文件,其源码如下:/*D ON O TE D I TT H I SF I L E-i t i sm a c h i n e g e n e r a t e d*/#i n c l u d e/*H e a d e r f o r c l a s s C P J a v a*/#i f n d e f _ I n c l u d e d _ C P J a v a#d e f i n e _ I n c l u d e d _ C P J a v a#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 混合 编程 方法
限制150内