JAVA如何加载一个外部DLL?

66i88 2017-01-21 12:40:19
JAVA如何加载一个外部DLL?

谢谢
...全文
585 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gotopause 2017-02-04
  • 打赏
  • 举报
回复
JNI有调用规范,你看一下就明白了,楼上的例子只是列出了java端代码,没有列出dll源码,你dll方法名不一定符合规范当然不行了
66i88 2017-02-03
  • 打赏
  • 举报
回复
引用 5 楼 trocp 的回复:

class JNADemo {
	
	static {
		loadNativeLib();
	}

	/**
	 * 加载dll
	 */
	private static void loadNativeLib(){
		try {
			//window系统(32位) C:\\Windows\\System32\\mydll.dll
			//window系统(64位) C:\\Windows\\SysWOW64\\mydll.dll
			System.loadLibrary("mydll");//读取mydll.dll
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * dll中的方法。
	 */
	public static native String who(String name);
}

class Test{
	
	public static void main(String[] args) {
		JNADemo.who("name");
	}
}
测试没通过。 是不是还缺少什么文件或组件? 请再指点一下。 谢谢。
oO临时工Oo 2017-01-22
  • 打赏
  • 举报
回复

class JNADemo {
	
	static {
		loadNativeLib();
	}

	/**
	 * 加载dll
	 */
	private static void loadNativeLib(){
		try {
			//window系统(32位) C:\\Windows\\System32\\mydll.dll
			//window系统(64位) C:\\Windows\\SysWOW64\\mydll.dll
			System.loadLibrary("mydll");//读取mydll.dll
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * dll中的方法。
	 */
	public static native String who(String name);
}

class Test{
	
	public static void main(String[] args) {
		JNADemo.who("name");
	}
}
清泉流 2017-01-22
  • 打赏
  • 举报
回复
JNA封装了JNI,用起来方便一些
X元素 2017-01-21
  • 打赏
  • 举报
回复
搜索一下 动态链接库 相关。
科比请留步 2017-01-21
  • 打赏
  • 举报
回复
搜索一个JNI事例,即可解决

62,614

社区成员

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

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