网上看了好多贴子,但是说的虽大体一致,但还是弄了好久好久
1.Java配置这个就不提了、
2.VC要添加的如图
(1)
(2)
目录结构
Dictionary(本地目录)
--|DictionaryClinet.java
--|DictionaryClinet.class(编译后生成)
--|DictionaryClinet.h(javah生成)
--|--Dictionary(包名)
--|--|DictionaryClinet.class
1.编译命令
D:\Java\Dictionary>javac DictionaryClinet.java
2.Dictionary是java文件中的包名,DictionaryClinet是类名。在目录下新建文件夹Dictionary,然后把生成的DictionaryClinet.class复制到该文件夹。
3.生成头文件
D:\Java\Dictionary>set classpath=D:\Java\Dictionary
D:\Java\Dictionary>javah -jni Dictionary.DictionaryClinet
4.通过小测试,实现了Java与C++的调用。
-------------以上是参考帖子总结出来的,算是下面这个帖子的一些补充-----------------
原文地址:
http://www.cnblogs.com/cpcpc/archive/2012/08/13/2636199.html
原文:
package com.liyong.TestNativeCode; public class TestNativeCode { public native void sayHello(); public static void main(String[] args) { System.loadLibrary("NativeCode"); TestNativeCode nativeCode=new TestNativeCode(); nativeCode.sayHello(); } }
第五步,编译Java文件
1,运行-->cmd-->进入TestNativeCode项目的src目录下编译该Java类,命令 javac ./com/liyong/TestNativeCode/TestNativeCode.java。在该TestNativeCode.java目录下会生成TestNativeCode.class文件
2,使用javah生成头文件,命令 javah -jni com.liyong.TestNativeCode.TestNativeCode。在src目录下生成com_liyong_TestNativeCode_TestNativeCode.h文件。
第六步,编译C++类库
1,打开VS2008,新建Win32 项目NativeCode,如图所示:
确定后,在“应用程序类型”中选择“DLL”,如图:
2,将上一步生成的com_liyong_TestNativeCode_TestNativeCode.h添加到项目头文件中。
3,在NativeCode项目的“源文件”中添加NativeCode.cpp文件,具体如蓉如下
#include "stdafx.h" #include "com_liyong_TestNativeCode_TestNativeCode.h" #include <iostream> using namespace std; JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello NDK!"<<endl; //printf("Hello NDK!"); }
4,使用Release编译,生成NativeCode.dll,将其拷贝到java环境变量Java_Home的Bin目录下,比如,LZ的Java_Home目录是
C:\Program Files\Java\jdk1.6.0_25,将NativeCode.dll拷贝到C:\Program Files\Java\jdk1.6.0_25\bin目录下。
第七步,运行Java应用程序,会输出“Hello NDK!”,Ok,成功!这里只是一个简单的例子,具体的应用就靠大家举一反三啦
本文转自 天涯飞客 51CTO博客,原文链接:http://blog.51cto.com/425093014/1181233,如需转载请自行联系原作者