您现在所在的位置:首页 > 论文中心 > 计算机类 >

    好的一种Java程序调用C/C++语言函数的方法(上)

        在现今的软件开发领域中,Java以其跨平台的优势得到大量的应用,其代码可以一次编译多处执行。但这种特性给Java带来了一定的局限性,幸好Java提供了完备的C/C++语言接口,这样我们可以利用C语言的强大功能实现Java难以实现的功能,在一定程序上消除Java的局限性和低效率。

        一、创建DLL文件

        使用某一种C/C++开发工具创建Dll文件,实现某一功能,供JAVA调用,例如本文在此使用Visual studio 2005创建一个名为testdll的动态库文件。

        二、使用JNI

        JNI是Java Native Interface的缩写,中文为JAVA本地调用。它允许Java代码和其他语言写的代码进行交互。

        1.JAVA类

        在JAVA程序中,首先需要在类中声明所调用的库名称,如下:

        static {

        System.loadLibrary(“testdll”); //加载动态库,testdll为DLL文件名称

        }

        还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。如下:

        public native static void set(int i);

        public native static int get();

        然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。

        例如程序testdll.java,内容为:

        public class testdll { static { System.loadLibrary(“testdll”); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }

        用javac testdll.java编译它,会生成testdll.class。

        再用javah testdll,则会在当前目录下生成testdll.h文件,这个文件需要被C/C++程序调用来生成所需的库文件。

      史老师