網上看了好多貼子,可是說的雖大致一致,但仍是弄了很久很久html
1.Java配置這個就不提了、java
2.VC要添加的如圖ios
(1)eclipse
(2)ide
目錄結構測試
Dictionary(本地目錄)spa
--|DictionaryClinet.java.net
--|DictionaryClinet.class(編譯後生成)code
--|DictionaryClinet.h(javah生成)htm
--|--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,成功!這裏只是一個簡單的例子,具體的應用就靠你們觸類旁通啦