请问在java里怎么调用dll?

sheek 2002-09-26 04:27:22
小弟最近需要在java里调用dll,但部知道应该怎么办?
请各位大虾帮忙!
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheek 2002-09-26
  • 打赏
  • 举报
回复
谢谢!
kofwr 2002-09-26
  • 打赏
  • 举报
回复
言之有理.
zhangjw 2002-09-26
  • 打赏
  • 举报
回复
我使用的是ibm的xml parser,用起来非常简单的,它会把xml解析为一个dom树,然后我的程序就可以直接操作dom对象,我虽然没有用过其他的解析器,但是我想估计差不多,解析的步骤,你不用关注
sheek 2002-09-26
  • 打赏
  • 举报
回复
谢谢
我想再问一个问题
在java中怎么解析xml?
zhangjw 2002-09-26
  • 打赏
  • 举报
回复
可以使用jni技术来实现,JNI是Java native interface的缩写,是java调用本地语言应用的方法,
简述作法如下:
1
a.如果一个类需要调用本地方法(比如c,cpp代码),则先在这个类的类声明中,使用如下语句:static{System.loadLibrary("MyDll");}
b.然后将要调用的本地方法的名称在这个类中声明,声明形式如下:public native void jnimethod();
c.接下来就可以在要用到这个方法的地方,如同一般的java方法一样调用。
以上只是在java代码中要注意的地方
2
d.在完成了如上的步骤后,使用javah命令来生成一个c程序要使用的头文件,格式如下:C:\> javah -jni MyJniTest
这样就生成了一个同名,后缀为.h的头文件,打开这个头文件,在其中发现两行形如:
JNIEXPORT void JNICALL Java_MyJniTest_jnimethod
(JNIEnv *, jobject);
的代码,其中Java_MyJniTest_jnimethod就是在c语言中要生成的方法名称,第二行的括号中就是该方法的两个默认参数
至此,头文件也生成了,
3
e.现在开始生成要被调用的c程序,要编译成.dll文件
要生成形如:
#include <jni.h>
#include "MyJniTest.h"
#include <stdio.h>

JNIEXPORT void JNICALL
Java_MyJniTest_jnimethod(JNIEnv *env, jobject obj)
{
......
return;
}
格式的c/cpp代码,而后生成dll
4
将生成好的dll文件,放置于系统类路径下,即可实现JNI本地方法调用了。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧