真的是快被弄死了。无语死了。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++
到这里   也就大功告成了。