Java通过JNI调用C/C++函数
2013-04-15 22:55
246 查看
Java代码:
C函数原型头文件:(javah生成)
C实现文件:
生成dll(利用Visual Studio 的cl命令)
cl -I"<JDK_HOME>\include" -I"<JDK_HOME>\include\win32" -DL XXX.c -FEXXX.dll
运行Java的main方法:
工程结构:
public class JNIHelloWorld { public native void helloWorld(); static { System.loadLibrary("hellojni"); } public static void main(String[] args) { JNIHelloWorld hello = new JNIHelloWorld(); hello.helloWorld(); } }
C函数原型头文件:(javah生成)
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class JNIHelloWorld */ #ifndef _Included_JNIHelloWorld #define _Included_JNIHelloWorld #ifdef __cplusplus extern "C" { #endif /* * Class: JNIHelloWorld * Method: helloWorld * Signature: ()V */ JNIEXPORT void JNICALL Java_JNIHelloWorld_helloWorld (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
C实现文件:
#include <jni.h> #include <stdio.h> #include "JNIHelloWorld.h" JNIEXPORT void JNICALL Java_JNIHelloWorld_helloWorld (JNIEnv * env, jobject javaObject) { printf("Hello World!\n"); return; }
生成dll(利用Visual Studio 的cl命令)
cl -I"<JDK_HOME>\include" -I"<JDK_HOME>\include\win32" -DL XXX.c -FEXXX.dll
运行Java的main方法:
Hello World!
工程结构:
相关文章推荐
- 通过JNI实现Java和C++的相互调用(转)
- 通过JNI实现Java和C++的相互调用(转)
- AndroidJNI 通过C++调用JAVA
- Java通过JNI调用ICTCLAS中文分词包的方法
- Cocos2d-x中通过JNI进行C++调用Java代码
- JAVA通过JNI调用本地C语言方法
- C++ 通过JNI调用Java
- cocos2d-x中通过Jni实现Java与C++的互相调用
- Java 通过JNI调用C或者CPP代码
- AndroidJNI 通过C++调用JAVA
- java与C/C++之间通过jni相互调用
- java 通过jni调用tuxedo
- cocos2d-x中通过Jni实现Java与C++的互相调用-------------------cocos2d-x-3.0正式版本(7.3)
- linux系统下通过jni用c++调用java
- C通过JNI调用JAVA——创建Object数组参数
- 通过JNI实现Java和C++的相互调用(转)
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码
- 【学习Android NDK开发】native code通过JNI调用Java方法
- Cocos2d-x3.1通过JniHelper调用Java类中静态函数
- java 通过jni调用dll