第一步:创建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部分,依旧可以运行。