JNI编程实现(Windows)
上一篇介绍了 静态库 动态库 那么静态库中的 静态库中的lib:该 动态库中的lib:该 本文制作动态库,即生成 制作动态库1.编写native声明方法的java类编写 public class Hello { public native static String sayHello(String name); static { System.load("E:EclipseHellolibhello.dll"); } public static void main(String[] args) { Hello hello = new Hello(); String ret = hello.sayHello("kelvin"); System.out.println(ret); } } 2.编译java类使用 #javac Hello.java 3.生成本地文件*.h使用 # javah -jni Hello 4.使用Visual Studio 2017创建构建动态库接下来,使用 a、新建工程首先,新建工程,文件 -> 新建 -> 项目 -> Visual C++ -> Windows 桌面 -> 动态链接库(DLL) b、添加头文件把生成的本地头文件 c、编写本地方法的实现新增 #include "stdafx.h" #include <iostream> #include "Hello.h" using namespace std; JNIEXPORT jstring JNICALL Java_Hello_sayHello(JNIEnv *env,jclass jc,jstring name) { const char *buf = { 0 }; buf = env->GetStringUTFChars(name,NULL); cout << buf << endl; return env->NewStringUTF("hello"); } d、生成动态库编译工程,生成动态链接库。如果是 生成 -> 重新生成解决方案 设置为 5、调用动态库把工程的根目录下 # java -classpath E:EclipseHello Hello kelvin hello 看到输出,表明了 这就是 参考资料 java native方法与JNI实现 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |