JNI QuickStart,Java调用C++实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JNI QuickStart,Java调用C++实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1495字,纯文字阅读大概需要3分钟。
内容图文
![JNI QuickStart,Java调用C++实现](/upload/InfoBanner/zyjiaocheng/854/1d366d45cf684dc5b3d61d5c045fcb3a.jpg)
一,构建Java本地方法类,声明native方法,编译
类文件:MyTest1.java
package com.merrick.test; class MyTest1 { public native int addnumber1(int a, int b); static{ //System. System.loadLibrary("jnidll1");//必须省略后缀.dll } public static void main(String args[]) { int res = new MyTest1().addnumber1(1234,234); System.out.println(res); } }
编译类文件生成class文件:>javac -verbose -d . MyTest1.java
二,javap生成JNI样式的C头文件
生成头文件:>javah MyTest1
头文件:com_merrick_test_MyTest1.h
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_merrick_test_MyTest1 */ #ifndef _Included_com_merrick_test_MyTest1 #define _Included_com_merrick_test_MyTest1 #ifdef __cplusplus extern "C" { #endif /* * Class: com_merrick_test_MyTest1 * Method: addnumber1 * Signature: (II)I */ JNIEXPORT jint JNICALL Java_com_merrick_test_MyTest1_addnumber1 (JNIEnv *, jobject, jint, jint); #ifdef __cplusplus } #endif #endif
三,在VS中新建win32 dll项目
项目名称jnidll1
四,复制生成的JNI样式.h文件至win32 dll项目文件夹
dll项目添加既有项:com_merrick_test_MyTest1.h
五,实现.h文件中的native方法
jnidll1.cpp
// jnidll1.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "com_merrick_test_MyTest1.h" JNIEXPORT jint JNICALL Java_com_merrick_test_MyTest1_addnumber1 (JNIEnv *env, jobject obj, jint a, jint b){ return a+b; };
六,生成dll:jnidll1.dll
七,在java代码中调用DLL中的native方法,测试
复制jnidll1.dll至java程序主目录
测试java调用:>java com.merrick.test.MyTest1
输出:>1468
内容总结
以上是互联网集市为您收集整理的JNI QuickStart,Java调用C++实现全部内容,希望文章能够帮你解决JNI QuickStart,Java调用C++实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。