Mac上Java JNI调用c++
2016-10-28 23:55
190 查看
第一步:创建HelloWorld.java
javac HelloWorld.java 便会生成class文件
java HelloWorld 生成.h文件
第二步:创建helloworld.cpp
g++ -dynamiclib -I /System/Library/Frameworks/JavaVM.framework/Headers helloworld.cpp -o libHello.jnilib
上面-i是include jdk中的相关头文件
生成目标在mac下必须是lib开头,jnilib后缀。
最终java HelloWorld即可以运行
经检查,发现当g++编译通过后,cpp和.h头文件均可以删除,只留下java部分,依旧可以运行。
public class HelloWorld { static { System.loadLibrary("Hello"); } public native void printHello(); public static void main(String[] args) { new HelloWorld().printHello(); } }
javac HelloWorld.java 便会生成class文件
java HelloWorld 生成.h文件
第二步:创建helloworld.cpp
#include <iostream> #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_printHello (JNIEnv *, jobject) { printf("Hello, Java world!\n"); return ; } int main(){ return 1; }
g++ -dynamiclib -I /System/Library/Frameworks/JavaVM.framework/Headers helloworld.cpp -o libHello.jnilib
上面-i是include jdk中的相关头文件
生成目标在mac下必须是lib开头,jnilib后缀。
最终java HelloWorld即可以运行
经检查,发现当g++编译通过后,cpp和.h头文件均可以删除,只留下java部分,依旧可以运行。
相关文章推荐
- Mac OS X 下编译jni动态库(java调用C++)
- Mac环境Java通过jni调用C++ OpenCv代码
- cocos2d-x笔记5: 通过jni实现C++调用Java
- Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤
- 使用JNI进行Java与C/C++语言混合编程(2)--在C/C++中调用Java代码
- 通过JNI实现Java和C++的相互调用(转)
- JAVA中使用JNI调用C++代码学习笔记
- jni的使用(java调用c++)
- JNI、C/C++、java调用dll、java与c数据类型对应关系
- Linux下C++调用Java简单实例(jni)
- 王学岗NDK系列(二):JNI:c /c++调用java属性和函数
- Java调用C++类库--JNI
- 1.JAVA中使用JNI调用C++代码学习笔记 - 星云博客园
- 用JNI进行Java编程---从Java程序调用C/C++代码
- 转一篇Linux下通过Java Jni调用C,C++库的文章
- java程序调用C、C++动态库的几种实现方式,即JNI的应用方式
- JNI中如何在C++文件中调用java中的对象,举例说明
- Cocos2d-x 中C++调用java(jni)
- Mac OS上Java用JNI调用C++
- Java调用C++类库--JNI