Java类中如何调用C语言函数?
解决方案 »
- java程序为什么越跑越慢呢?
- 一个奇怪的java mail问题
- 请问各位,HashSet不能直接new对象吗?帮我看看这个程序哪里有问题
- Java正则中一串数字中后5位要匹配ABCDE这类,即ABCDE各代表不同的数字要怎么写?谢谢
- 高分请教十六进制表示经纬度
- SQLOLEDB无法启动分式
- 请问java怎么和access数据库相连
- 谁有jbuilder 6 enterprise 的注册码,我给100分
- 请问response.encodeURL("j_security_check")是什么意思?
- 关于Java中多线程的问题
- 用jdom向一个element添加element出错!!org.jdom.IllegalAddException:
- 基础问题:如何产生一个16进制随机数序列,然后返回成String数据类型?
首先要加载本地的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的有关文档,完了以后编译加入路径就可以调用了,相关细节不再缀述!