Java类中如何调用C语言函数?

解决方案 »

  1.   

    在java中用jni来调用C语言的本地方法
    首先要加载本地的dll文件
    static { 
    System.loadLibrary(“XXXX”); 
    }
    还需对将要调用的方法做本地声明,关键字为native。且只需要声明,而不需要具体实现。例如:
    public static native String getStatus(int j);
    再用javac 命令将这些java文件生成class,然后用javah命令生成c/c++本地文件.具体命令参照帮助!
    编辑生成的c/c++文件,实现具体的方法内容!然后用C/C++编译器生成dll,加到classpath中即可.如果调用的是动态链接库,就相对麻烦些,因为java中的参数与C中参数类型不大相同,在调用过程中,必须在生成的连接java与c的.c文件中进行类型转换,相关的转换可以参照jni的有关文档,完了以后编译加入路径就可以调用了,相关细节不再缀述!