JNI with C/C++ Mixture
第一步:写一个使用Native代码的java类 HelloJNICpp.java
public class HelloJNICpp { static { System.loadLibrary("hello"); // hello.dll (Windows) or libhello.so (Unixes) } private native void sayHello(); public static void main(String[] args) { new HelloJNICpp().sayHello(); } }
编译HelloJNICpp.java成HelloJNICpp.class
javac HelloJNICpp.java
第二步: 创建一个C/C++的头文件 HelloJNICpp.h
javah HelloJNICpp
生成的头文件HelloJNICpp.h 包括以下内容
JNIEXPORT void JNICALL java_HelloJNICpp_sayHello(JNIEnv*, jobject);
第三 步:C/C++实现 HelloJNICppImpl.h HelloJNICppImpl.cpp 和HelloJNICpp.c
我们应该实现程序HelloJNICppImpl.h 和HelloJNICppImpl.cpp在C++代码里面,但是实现Java接口在HellJNICp在C里面。
C++ Header - "HelloJNICppImpl.h
"
#ifndef _HELLO_JNI_CPP_IMPL_H #define _HELLO_JNI_CPP_IMPL_H #ifdef __cplusplus extern "C" { #endif void sayHello (); #ifdef __cplusplus } #endif #endif
C++实现 - "HelloJNICppImpl.cpp
"
#include "HelloJNICppImpl.h" #include <iostream> using namespace std; void sayHello () { cout << "Hello World Again!" << endl; return; }
C实现java接口 - "HelloJNICpp.c
"
#include <jni.h> #include "HelloJNICpp.h" #include "HelloJNICppImpl.h" JNIEXPORT void JNICALL Java_HelloJNICpp_sayHello (JNIEnv *env, jobject thisObj) { sayHello(); // invoke C++ function return; }
编译C/C++程序到hello.dll
MinGW GCC in windows >g++ -Wl,--add-stdcall-alias -I"<JAVA_HOME>\include" -I"<JAVA_HOME>\include\win32" -shared -o hello.dll HelloJNICpp.c HelloJNICppImpl.cpp
第四步:运行Java程序
> java HelloJNICpp or > java -Djava.library.path=. HelloJNICpp
相关推荐
java-tutorial-2008-03-14
Java2 Tutorial-5.0
PyQt5-Chinese-tutorial-master 中文翻译,详细实用。看了挺好的
The Java Tutorial, 4th Edtion
SR-IOV and IOMMU/VT-d must be enabled in BIOS intel_iommu=on option must be specified in kernel command line - to check: cat /proc/cmdline - to setup: edit and configure bootloader files (GRUB/GRUB2)
讲解如何入门PyTorch,包括基础原理知识、numpy与PyTorch的区别以及案例研究实例
react-router-tutorial-master
httpclient-tutorial-simplified-chinese.pdf
jbehave-tutorial-maste
This tutorial deals with the two most common applications of JNI: calling C/C++ code from Java programs, and calling Java code from C/C++ programs. We'll cover both the essentials of the Java Native ...
ecos-tutorial-i386PC
Tutorial-on-DNN-4-of-9-DNN-Accelerator-Architectures
这是ros-tutorial-icourse 安装使用入门的教程,供ROS入门者参考
是net-snmp官网上的TUTORIAL-MIB文件,由于官网不太容易登陆,因此贴在这里供大家下载!
spring的安全框架演示demo,这个是简单的,适合初学者
tutorial-Java SE Tutorial 2022-03-04
VASP-tutorial-DielectricsRPA.zip资料vasp密度泛函DFT模拟计算态资料文档下载VASP-tutorial-DielectricsRPA.zip资料vasp密度泛函DFT模拟计算态资料文档下载VASP-tutorial-DielectricsRPA.zip资料vasp密度泛函DFT...
本资源为Cheat Engine 训练教程,本教程将尝试讲解在游戏中作弊的一些基本知识,并帮助你熟悉 Cheat Engine 的使用方法。通过本应用,可以帮助新人快速入门CE的基本操作方法。如查找数据,修改数据等等
版权所有2018 Kurento。根据Apache2.0许可证授权。
参考Tensorflow-CNN-Tutorial-master 将tensorflow 1.0改为2.0版本,同时加入模型保存,重新加载,以及识别图片