linux操作系统中Eclipse实现jni的示例
来源:互联网 发布:深圳茁壮网络 编辑:程序博客网 时间:2024/06/10 16:28
一、保存linux系统已经有gcc
二、确保linux系统中已经安装jdk. 我的系统安装的jdk的路径为: /root/cppDev/jdk1.6.0_25
三、在linux系统中安装好可以同时开发 C/C++与java的eclipse
四、打开eclipe,workspace路径为: /root/workspace3
五、创建C项目cso,这样会在linux系统中产生这样的路径 /root/workspace3/cso/src
六、打开隐藏文件 vim /root/.bashrc在文件的最后加上 export LD_LIBRARY_PATH=/root/workspace3/cso/src 。保存退出。
之后会把c的动态库文件放入目录/root/workspace3/cso/src下,这样java就可以调用到该目录下的动态库文件
七、在eclipse目录中创建java项目 jniTest,创建包com.fs.test,再在该包中创建文件Hello.java
代码:
package com.fs.test;public class Hello {public native String sayHello();static {System.loadLibrary("wgr");}public static void main(String[] args) {String str = new Hello().sayHello();System.out.println("java--->" + str);}}上面代码保存后会在/root/workspace3/jniTest/bin/com/fs/test中产生文件Hello.class
八、生成.h文件。终端进入/root/workspace3/jniTest/bin。使用命令“javah com.fs.test.Hello”,
命令执行后会在目录“ /root/workspace3/jniTest/bin”中产生com_fs_test_Hello.h文件。
九、把生成的文件“com_fs_test_Hello.h”拷贝到第五步创建的项目cso的src目录下,然后Hello.c文件,内容为
#include "com_fs_test_Hello.h"#include <stdio.h>JNIEXPORT jstring JNICALL Java_com_fs_test_Hello_sayHello(JNIEnv * env, jobject thiz){char *p = "Hello Worldsssss!";jstring str = (*env)->NewStringUTF(env, p);printf("c ---> Hello Worsssfdfdsfdssfdsassld\n");return str;}十、在目录"/root/workspace3/cso/src"生成动态库文件"libwgr.so"。从终端进行目录"/root/workspace3/cso/src",执行命令
"gcc -fPIC -I /root/cppDev/jdk1.6.0_25/include -I /root/cppDev/jdk1.6.0_25/include/linux -shared -o libwgr.so Hello.c"
十一、在eclipse中运行java项目 jniTest,在eclipse的控制台上会看到如下java与c打印的信息
java--->Hello Worldsssss!
c ---> Hello Worsssfdfdsfdssfdsassld
十二、看到上面信息,说明成功了。
- linux操作系统中Eclipse实现jni的示例
- linux操作系统中Eclipse实现jni的示例
- eclipse JNI示例。利用C/C++实现JAVA中调用的函数
- 操作系统中关于信号量操作的代码示例(Linux + windows)
- 操作系统中关于信号量操作的代码示例(Linux + windows)
- NDK-Jni的开发 在Eclipse中实现
- linux中实现jni 例子
- linux中实现jni 例子
- AndroidStudio实现JNI的示例详解
- AndroidStudio实现JNI的示例详解
- Linux下Java 通过JNI native与C进行交互的方法实现示例
- Android Eclipse JNI开发示例
- java开发第三个JNI示例程序(基于linux操作系统)--Invocation Api实现native层运行java程序
- 使用Eclipse NDK-build 编译jni的步骤示例
- Linux下JNI的实现
- Linux下JNI的实现
- Linux下JNI的实现
- 在Linux操作系统中,eclipse建立快捷方式
- 无线遥控解码接收板的输出格式 非锁/互锁/自锁的区别
- centos上安装xdebug
- 2.5. About Hosts
- 深入浅出Mybatis-改造Cache
- Websocket——php实战(version 13)
- linux操作系统中Eclipse实现jni的示例
- java 拼接复杂的json字符串
- buffer_head和bio
- vml svg 流程图
- hdu4791水题
- JAVA深复制(深克隆)与浅复制(浅克隆)
- 当前的构件标准规范
- Udacity cs344-Introduction to Parallel Programming学习笔记-第四单元
- android控件两端对齐