一步一步照着下面这个教程来,小白教程hhh
感觉很不错^ ^
vim HelloWorld.java
class HelloWorld
{
private native void print();
public static void main(String[] args)
{
new HelloWorld().print();
}
static
{
System.loadLibrary("HelloWorld");//必须添加此方法不然会报错:您的应用程序尚未System.loadLibrary(...)加载本地库。
}
}
export CLASSPATH=$CLASSPATH:$PWD
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
javac HelloWorld.java
javah -jni HelloWorld
vim HelloWorld.cpp
#include <jni.h>
#include <iostream>
#include "HelloWorld.h"
using namespace std;
JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
cout<<"Hello World!"<<endl;
}
g++ -fPIC -shared -o libHelloWorld.so HelloWorld.cpp
此时发现有错误,找不到头文件,则使用搜索命令找jni.h的位置,在-I后面加上对应路径(需要两个,一个include/linux/,一个/include/ )在生成动态库的时候在对应目录下搜索。
locate jni.h
g++ -I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/include/linux/ -I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/include/ -fPIC -shared -o libHelloWorld.so HelloWorld.cpp
java HelloWorld