Java 用VS2010+Eclipse调试jni的native代码

   1.在eclipse中新建一个JNITest的工程,新建一个package  com.example.test。

Java 用VS2010+Eclipse调试jni的native代码


   2.com.example.test下新建一个类HelloWorld,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.example.test;
                                                                                                                                                                                                
public class HelloWorld {
    public native void displayHelloWorld();
                                                                                                                                                                                                
    static {
        System.loadLibrary("jniTest");
    }
                                                                                                                                                                                                
    public static void main(String[] args) {
        System.err.println("TEST:");
        new HelloWorld().displayHelloWorld();
    }
}


 3.运行cmd,定位到JNITest根目录下,mkdir新建jni文件夹,

   运行命令 javah -classpath bin -d jni com.example.test.HelloWorld

Java 用VS2010+Eclipse调试jni的native代码

会在jni文件夹下生成 com_example_test_HelloWorld.h

Java 用VS2010+Eclipse调试jni的native代码


   4.打开vs2010新建一个名为jniTest的win32控制台项目:

Java 用VS2010+Eclipse调试jni的native代码


点击确定->下一步,选中dll,附加选项中选择空项目:

Java 用VS2010+Eclipse调试jni的native代码


   5.将我们刚javah出来的h文件复制到jniTest工程目录下的jniTest文件夹下,在jniTest工程中添加头文件,现有项,在弹出来的对话框选择com_example_test_HelloWorld.h文件;

Java 用VS2010+Eclipse调试jni的native代码



   6.将java jdk安装目录中的include\jni.h include\win32\jni_md.h两个文件复制到与com_example_test_HelloWorld.h同一目录下:

Java 用VS2010+Eclipse调试jni的native代码


   7.在vs2010工程jniTest新建一个C++源文件,命名为hello.cpp,代码如下:

1
2
3
4
5
6
7
8
#include "com_example_test_HelloWorld.h"
#include <stdio.h>
                                                   
JNIEXPORT void JNICALL Java_com_example_test_HelloWorld_displayHelloWorld
(JNIEnv * env, jobject obj)
{
    printf("Hello World,ponpon\n");
}


   将com_example_test_HelloWorld.h内的#include <jni.h>改为#include "jni.h",编译之,若成功在Debug下生成jniTest.dll。


   8.回到Eclipse中,右击工程,选择”Import“导入:

Java 用VS2010+Eclipse调试jni的native代码


选择File System指定到vs2010工程jniTest的Debug下,选择jniTest.dll:

Java 用VS2010+Eclipse调试jni的native代码


单击finish,并编译,控制台输出如下:

Java 用VS2010+Eclipse调试jni的native代码










本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1362081,如需转载请自行联系原作者