真的是快被弄死了。無語死了。java
首先 你的有個C++編譯器(個人是Visio Stdio 2008)。和 Java 編譯器(個人是Eclipse)。函數
咱們先在Eclipse中新建一個 Java 項目。測試
而後新建一個類 我取名字爲 Hello.javaspa
而後 咱們打開磁盤 找到這個Java文件.net
打開CMD命令行 使用 javac Hello.java 編譯文件命令行
再在命令行中使用 javah Hello  (注意 這裏不要加後綴)對象
咱們會發現  在目錄下多了一個 Hello.h 這個C++的頭文件ip
而後咱們打開C++編譯器  新建一個 項目utf-8
這裏項目名字叫作 Hello字符串
在 頭文件 上 選擇 添加 –> 新建項 
選擇頭文件 分別新建 三個文件 jni.h  jni_md.h  Hello.h
而後   咱們打開 咱們的 JDK 目錄 下的 include 目錄
咱們看見這裏也有一個 jni.h 文件   咱們用記事本打開  而後複製裏面全部的內容 而後粘貼到 VS2008 裏的咱們剛纔新建的 jni.h 文件裏面
打開目錄下的 win32 目錄
咱們會發現 這裏也有一個 jni_md.h 頭文件 跟上一步同樣 複製裏面全部的內容 而後粘貼到 VS2008 裏的咱們剛纔新建的 jni_md.h 文件裏面
還有  打開剛纔的 Java 項目目錄  找到咱們剛纔生成的 Hello.h 頭文件 跟上一步同樣 複製裏面全部的內容 而後粘貼到 VS2008 裏的咱們剛纔新建的 Hello.h 文件裏面
而後   咱們在 源文件 內新建一個 CPP 文件 這裏咱們命名爲  Hello.cpp
如今咱們編輯這個cpp文件 內容以下  
可能你們的跟我不同  到這裏就不知道該怎麼寫了。 沒事 咱們打開Hello.h 複製這一段代碼
稍做修改  填入Hello.cpp 由於咱們的邏輯是要C++這裏返回一個字符串 因此咱們返回字符串    jstring
可是 這是一個空的對象  根本沒有咱們的內容  
這裏提供一個將C++的字符串轉換成Java字符串的函數
/**
* 將C++的字符串 轉換爲Java的字符串Jstring
*/
jstring stoJstring(JNIEnv* env, const char* pat)
{
    jclass strClass = env->FindClass("java/lang/String");
    jmethodID ctorID = env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V");
    jbyteArray bytes = env->NewByteArray(strlen(pat));
    env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
    jstring encoding = env->NewStringUTF("utf-8");
    return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
}
如今咱們Hello.cpp裏的代碼是這樣的
而後 打開項目屬性 附加包含目錄 將你的剛纔新建的文件的項目的目錄地址粘貼進去
這時候 咱們C++的代碼部分也算是弄好了。在項目上右鍵 生成 或者  從新生成
控制檯打印的信息 顯示成功 就算是好了  若是沒有成功  請返回檢查一下
而後打開Visio Stdio項目的目錄下的Debug 文件夾 發現裏面生成了一個 Hello.dll 文件
到這一步  C++部分就完全完成了,。
複製這個 Hello.dll 文件,在Eclipse中 右鍵項目粘貼進去
咱們在項目下新建一個Test來測試一下。
控制檯會打印咱們剛纔在C++代碼中寫的字符串 Hello C++
到這裏   也就大功告成了。