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,成功!這里只是一個簡單的例子,具體的應用就靠大家舉一反三啦
這里給出Demo的源碼:C++:NativeCode.rar Java:TestNativeCode.rar