网站上传图片不成功,php做的网站后台,网站首页动图怎么做,c 做网站怎么居中---说明#xff0c;之前直接百度出来的例子#xff0c;照猫画虎。没想到的是这例子居然直接来自百度百科#xff0c;写着写着就囧了。。 ---anyway#xff0c;写完了就当是给自己看吧。 同事求助#xff0c;就看了一下#xff0c;照猫画虎一番#xff0c;略有所得。 JNI…---说明之前直接百度出来的例子照猫画虎。没想到的是这例子居然直接来自百度百科写着写着就囧了。。 ---anyway写完了就当是给自己看吧。 同事求助就看了一下照猫画虎一番略有所得。 JNI是什么 NI是 Java Native Interface 的缩写它提供了若干的API实现了Java和其他语言的通信主要是CC。从Java1.1开始JNI标准成为java平台的一部分它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言尤其是C和C而设计的但是它并不妨碍你使用其他编程语言只要调用约定受支持就可以了。使用java与本地已编译的代码交互通常会丧失平台可移植性。 -- 以上来自百度百科 JNI步骤 ① java类中编写带有native 声明的方法。 ② 使用 javac 命令编译所编写的java类。 ③ 使用 javah 命令生成头文件。 ④ 使用C/C实现本地方法。 ⑤ 生成动态连接库。 ⑥ 执行java。 --还是来自百度百科 JNI实例 ① 1 public class HelloWorld {
2 public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明
3 static {
4 System.loadLibrary(hello);//载入本地库
5 }
6 public static void main(String[] args) {
7 new HelloWorld().displayHelloWorld();
8 }
9 } ② javac HelloWorld.java ③ javah HelloWorld ④ 编写本地方法实现和由javah命令生成的头文件里面声明的方法名相同的方法。 建议用vs新建 Win Console - DLL 项目新建文件HelloWorldImpl.cpp 1 #include jni.h2 #include HelloWorld.h3 4 //#include other headers5 6 JNIEXPORT void JNICALL7 Java_HelloWorld_displayHelloWorld(JNIEnv*env,jobject obj)8 {9 printf(Helloworld!\n);
10 return;
11 } 注意这里使用的是jni.h也可以使用jni.h。前者将jni.h文件复制进来即可后者需要在项目中引入其所在的文件夹$JAVA_HOME$/include。 但是据我实测实际上还需要 jni_md.h 文件要么复制进来要么引入其所在的文件夹$JAVA_HOME$/include/win32。 ⑤ 如无问题就可以进行编译了。这里要注意一点如果jdk是64位版本那么dll也需要64位的。vs可以直接设置生成的版本。 虽然可以使用单独的命令来生成dll文件不过这里只是一个练习直接build项目即可生成然后在文件夹中就能找到。 ⑥ 由于我们在Java中调用的hello所以需要将该dll复制到java所在的文件夹并重命名。 static {System.loadLibrary(hello);//载入本地库} 然后运行即可。 一般来说如果第三方有提供dll那可以直接调用执行。 ps如果不用vs那也可以使用gcc参考百度百科。 转载于:https://www.cnblogs.com/larryzeal/p/5687392.html