您的位置:首页 > 编程语言 > C语言/C++

Mac上Java JNI调用c++

2016-10-28 23:55 190 查看
第一步:创建HelloWorld.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部分,依旧可以运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mac jni c语言