java中如何调用c/c++代码

Java某些时候需调用本地c/c++代码,Sun公司提供的JNI是java平台一个功能强大的接口,该接口提供了java与操作系统本地代码互相调用的功能
最简单的java调用c/c++代码步骤:
在java类中声明一个native的方法(native表其具体代码由本地c/c++实现)
使用javah命令生成包含native方法的c/c++头文件
javah -help
按照生成的头文件编写c/c++源代码(生成dll动态链接库工程、添加头文件)
将c/c++源文件编译为dll(与exe类似,为可执行二进制代码)
把dll文件加入到path环境变量下
java类中加载dll,然后调用native方法

操作:
public class Test {
public native void sayHello();
public static void main(String[] args) {
System.loadLibrary(" cppTest ");
Test test=new Test();
test.sayHello();
}
}

K:\>cd K:\files\workspace\Test\src //源码Test.java所在目录
K:\files\workspace\Test\src>javah Test //生成Test.h

#include <iostream>
#include "Test.h" 
using namespace std;
JNIEXPORT void JNICALL Java_Test_sayHello(JNIEnv *env, jobject obj)
{
cout<<"hello world"<<endl;
}
//编译生成 cppTest.dll ,编译过程中所需jni.h等头文件从jdk目录拷贝
//path修改后需重启eclipse

使用JNI的两个弊端:
使用了JNI,该APP将不能再跨平台,如移植到别的平台,native代码需重新编写
java是强类型语言,而c/c++非,故在写JNI时需小心
总之,构建java程序时,尽量少用本地代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值