java调c++代码_Java中调用C++代码的实现 | 学步园

JNI为  Java Native Interface 即Java本地接口,使用此种方式可以对C/C++代码进行调用,其在本质上是对C/C++生成的动态库进行调用而不是直接对C/C++代码进行调用

Java代码如下:

public class TestJNI{

//JNI在本质上是调用C/C++的动态库来实现的,而不是直接

//调用C/C++的代码块

static{

System.loadLibrary("Helloword");

}

public native void show();

public static void main(String argv){

TestJNI test=new TestJNI();

test.show();

}

}

在命令行进行编译

javac TestJNI.java

在命令行进行生成C/C++头文件

javah TestJNI

注意:进行生成头文件时候不要在文件名后面加上后缀

这时在存放java源文件地方就会生成一个C/C++的源文件TestJNI.h

下面开始进行生成C/C++的动态库操作:

在VC 6.0中创建动态衔接库项目,将TestJNI.h拷贝到新建的目录下面,使用#include “TestJNI.h”找到使用javah TestJNI生成的头文件

进入JDK目录下的include目录下将jni.h和win32目录下的jni_md.h两个头文件拷贝到新建的工程中

C++代码:

#include

#include "TestJNI.h"

JNIEXPORT void JNICALL Java_TestJNI_show

(JNIEnv *, jobject){

std::cout<

}

注意:在编译的时候如果提示找不到,jni.h头文件,那么就打开TestJNI.h头文件将include     改为#include "jni.h"既可以解决

编译后会在工程文件夹Debug目录下生成一个  .dll的动态库文件,将这个文件拷贝进入到Java JDK目录下bin目录下

将*.dll文件名改为Helloword.dll

然后在控制台下  运行java程序  java TestJNI

成功调用C++代码所写的程序!!!!

1346724952_3915.PNG

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值