【转】linux下jni编程指南之——HelloWorld

一步一步照着下面这个教程来,小白教程hhh

感觉很不错^ ^

link

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值