一个java调用c++程序的实例(jni)

JNI是Java Native Interface的 缩写,允许Java代码和其他语言写的代码进行交互。

主要操作步骤:

编写带有native声明的方法的java类

public class JNITest
{
	//加载C/C++文件,加载到内存中
	static 
	{
		System.loadLibrary("HelloWorld");
	}
	//要调用java本地接口
	public  native void output();


	public static void main(String[] args)
	{
		JNITest test = new JNITest();
		test.output();
	}
}


2·使用javac命令编译所编写的java类

javac -d . JNITest.java


3·使用javah ?jni java类名生成扩展名为h的头文件

javah JNITest

 

4·使用C/C++(或者其他编程想语言)实现本地方法

这个我是借助Visual Studio2012(安装就花了我一个晚上),创建一个win32的应用:

需要把第3步生成的JNITest.h文件放到当前工程中,且需要把编译需要的文件添加进来

上图中显示的是把jdk中两个文件夹添加到包含目录中,实际用到的是include/jni.h和include/win32/jni_md.h

#include "stdafx.h"
#include "JNITest.h"
#include "jni.h"
JNIEXPORT void JNICALL Java_JNITest_output
  (JNIEnv *, jobject)
{
	printf("记录一下,Helloworld");

}


 

5·将C/C++编写的文件生成动态连接库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值