关于JNI读取本地资源库的问题?

wxf75 2003-08-21 09:29:50
请大家积极参与这个问题的讨论,如何实现用JNI来调用动态库!!
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf75 2003-10-20
  • 打赏
  • 举报
回复
我的applet调用DLL,在JBULIDER环境下可以,但一拿到IE下去运行,就会出现
安全性问题,而且我对CLASS文件已经签名,但在IE下JRE好像不认识一下,根本
就不管我这个认证?我该怎么办?
UserJavaPerson 2003-10-14
  • 打赏
  • 举报
回复
不行,首先生成java的.h文件,然后将.h文件增加到vc的编辑器中,然后生成.dll
文件才有效
wxf75 2003-08-26
  • 打赏
  • 举报
回复
当我执行javah –jni classname时,出现“**class NOT FOUND”!
请问这是什么原因?
wxf75 2003-08-25
  • 打赏
  • 举报
回复
大家都不清楚吗?
wxf75 2003-08-21
  • 打赏
  • 举报
回复
假如我需要调用的DLL是已经生成了的,不能修改,也行吗?
Wkenny 2003-08-21
  • 打赏
  • 举报
回复
1. java文件中指明需要调用的本地方法和需要加载的dll文件名。
2. 从class文件生成.h文件 : javah –jni classname
3. 建立Dll工程,添加1生成的.h文件以及jni.h(jdk\include)、jni_md.h (jdk\include\win32)文件到工程目录中,并且把他们添加到VC编译器中。
4. 在cpp中实现生成的.h中的本地方法(方法前面加extern “C” …)
5. 编译工程,生成Dll文件
6. 拷贝Dll到系统路径,或者类路径中
7. 执行class文件可以得到结果。

Example:
class Show {
public static void main(String [] args) {
Show app = new Show();
app.show("China");
}
private native void show(String msg);
static {
System.loadLibrary("msg");
}
}

执行:
javah –jni classname

生成:.h的头文件。

下面的工作在VC中执行,按照上面的讲解步骤

81,090

社区成员

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

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