java native 调试_Java 用VS2010+Eclipse调试jni的native代码

本文介绍了如何在Eclipse环境下,利用Visual Studio 2010来调试Java的JNI(native)代码。首先在Eclipse创建JNITest工程,编写HelloWorld类并声明native方法。然后通过javah生成头文件,接着在VS2010中创建DLL项目,将头文件和必要的JNI头文件引入,编写C++源代码实现native方法。最后,将生成的dll导入Eclipse工程并进行调试。
摘要由CSDN通过智能技术生成

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

4a01dd8f20e3b716b260188dbdbf82c4.png

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

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

c838620f438aff7bdd0e92088042c3e6.png

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

5e6b21ae0a77bc544fb9b79480cf71cc.png

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

3f4734461554df45b01f01808cf0c4e2.png

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

78f2a077add344c8a641a2da6eee2072.png

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

4e24725ae33ded655cd97b068ea4aa18.png

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

eebcc889588d2cde105029603257efcf.png

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

#include "com_example_test_HelloWorld.h"

#include

JNIEXPORT void JNICALL Java_com_example_test_HelloWorld_displayHelloWorld

(JNIEnv * env, jobject obj)

{

printf("Hello World,ponpon\n");

}

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

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

b78e62e365f80544b80f3e3f5d78d7f4.png

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

db8826cba067134f2cf580a1aa0b42a0.png

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

dfc8327bba608319004d9414701b143c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值