当前位置: 首页 > news >正文

网站标题在线制作/美国最新消息今天 新闻

网站标题在线制作,美国最新消息今天 新闻,西安千秋网络科技有限公司怎么样,电子商务网站建设与管理课程心得Linux平台Java调用so库-JNI使用例子JNI例子一:1.确保gcc编译器已安装2.编写HelloJNI.java代码,用native声明需要用C实现的函数。如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/test/net/wangliping/H…

Linux平台Java调用so库-JNI使用例子

JNI例子一:

1.确保gcc编译器已安装

2.编写HelloJNI.java代码,用native声明需要用C实现的函数。

如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/test/net/wangliping/HelloJNI.java

package net.wangliping

public class HelloJNI

{

static

{

System.loadLibrary("goodluck");

}

public native static int get();

public native static void set(int i);

public static void main(String[] args)

{

HelloJNI test = new HelloJNI();

test.set(10);

System.out.println(test.get());

}

}

3.在HelloJNI.java文件所在目录下编译.java文件。

javac HelloJNI.java

4.在~/Desktop下编译第三步中生成的.class文件,执行 javah -jni 包名 类名(类名不要后缀),会在classes生成一个.h的文件,本例中生成的头文件名为 net_wangliping_HelloJNI.h

javah net.wangliping.HelloJNI

5.编写HelloJNI.c文件,实现引用第4步中生成的.h头文件,并实现其中声明的方法。

#include "net_wangliping_HelloJNI.h"

int i = 0;

JNIEXPORT jint JNICALL Java_net_wangliping_HelloJNI_get(JNIEnv *env, jclass jc)

{

return i;

}

JNIEXPORT void JNICALL Java_net_wangliping_HelloJNI_set(JNIEnv *env, jclass jc, jint j)

{

i = j;

}

6.将第5步中编写的HelloJNI.c文件,编译成.o文件

gcc -fPIC -D_REENTRANT -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.19/include -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.19/include/linux -c HelloJNI.c

注:/usr/lib/jvm/java-1.5.0-sun-1.5.0.19/include 是jni.h头文件所在的路径

/usr/lib/jvm/java-1.5.0-sun-1.5.0.19/include/linux 是jni_md.h所在的路径

7.将第6步中生成的HelloJNI.o文件编译成.so库文件

gcc -shared HelloJNI.o -o libgoodluck.so

注:和windows下不同,linux的库文件必须是以libxxx.so形式命令的(或者 libxxx.so.y,y是版本号),lib前缀是为了系统能够识别它,xxx是java代码System.loadLibrary("xxx");中引用库的名字。

8.将第7步中生成的libgoodluck.so文件拷贝到java的加载库LD_LIBRARY_PATH指向的路径中。

前提是你有足够的权限,如果没有sudo权限的同学,用下面的方法:

1) 在/home下建立一个用来存放.so库文件的目录,比如/home/swan/lib

2) 把libgoodluck.so文件拷贝到该目录下

3)打开Terminal,运行如下命令

export LD_LIBRARY_PATH=/home/swan/lib

只在当前shell下有效...

补充:以下方法可以直接利用绝对路径来load这个so库文件,从而无需做上述的放置path或者更改库路径的动作。

static {

System.load("/home/swan/test/libgoodluck.so");

}

9.在运行HelloJNI.class

java net.wangliping.HelloJNI

一切正常后,可以看到运行結果是输出了10,其值是由C语言代码实现并返回的。

JNI例子二:

public clas

http://www.jmfq.cn/news/4990861.html

相关文章:

  • 58同城建网站怎么做/windows优化大师和360哪个好
  • 做展板好的网站/2024年新冠疫情最新消息今天
  • 要维护公司的网站该怎么做/今日小说排行榜
  • 乐清做网站的/品牌营销策略包括哪些内容
  • 做百度推广/seo团队
  • 淮安市广德育建设网站/怎么联系地推公司
  • 成熟的网站怎么做seo推广/品牌软文范文
  • 公司网站设计案例/今日新闻快讯
  • 青岛网站建设公司/百度官网下载安装免费
  • 十大招标网站排行榜/河北seo网络优化培训
  • .net网站开发优点/谷歌搜索引擎为什么国内用不了
  • 苏州知名网站建设公司/首页
  • php网站开发书/湖南关键词优化推荐
  • 网站单个页面做301/河南靠谱seo地址
  • 南京网站优化报价/免费推广的网站
  • web开发是做网站吗/安徽网络优化公司
  • 一个网站要怎么做的/申京效率值联盟第一
  • 给公司做门户网站多少钱/网络营销招聘岗位有哪些
  • 有关网站建设的网站/网络推广员为什么做不长
  • 成都企业网站建设公司/网络运营工作内容
  • 国内外网站建设/平台推广销售话术
  • 北京新闻最新消息报道/seo方案书案例
  • 一个网站的二维码怎么做/鹤壁网站推广公司
  • 小网站如何做/网站开发的步骤
  • 温州网站建设icp备/西安网站建设优化
  • 金属建材企业网站建设方案/中国国家培训网官网查询
  • 虎门镇最新疫情最新消息/手机流畅优化软件
  • 广州网站建设 易点/网络推广一个月的收入
  • 自己动手做网站教程/百度广告联盟
  • 网站开发需求式样书/seo网络营销公司