JNI 开发技术 (一)

来源:互联网 发布:淘宝网苿莉蕾丝上衣 编辑:程序博客网 时间:2024/05/11 05:42

   很多时候为了追求性能采用JNI的方法来帮助JVM完成一些计算操作,我们会采用JNI的方式来获取操作系统更多更高级的特性,从而摆脱JVM API功能上的一些不足。下面是我初次使用JNI的一些心得。

   开发JNI程序一般有6个步骤:

 

   1.设计Java程序,制定和规划Native接口,并为次接口创建Java类。

   2.编译刚刚写的Java程序。(javac .......,你懂的)

   3.使用javah 工具根据刚刚编译的java 程序生成C语言头文件。(例如:javah -d /home/alibaba/jni-learn  xxx.xxx.FirstJNIExample )

   4.使用产生的头文件,实现实际功能,#include "xxx.h",然后开始神奇的C程序。

   5.编译刚刚写好的C程序为共享库。注意:在JDK安装路径的include文件夹下,对于不同OS平台有不同的头文件子目录,比如这里的就是/jdk/include/linux,  windows就可能是/jdk/include/win32/文件夹。

  6.运行java程序。(java xxx.xxx.FirstJNIExample)

 

至此整个开发流程结束了,

 

下面我讲讲常常遇到的问题:

最近常遇到的问题就是无法加载到编译好的共享库文件 *.so这个文件。

为了加载*.so这个我们需要在程序里面调用哦该静态方法之前使用这个来

加载共享库:(有两个方法)

 1.这个方法采用“共享库名”来家在共享库,“共享库名全限定名=所在目录路径 + lib + 共享库名 + .so”,所以使用这个方法加载的时候,必须保证共享库的文件名必须满足上面的那个公式,而且这个文件必须在-Djava.library.path=.这个JVM启动选项指定的路径下。

上面要求的(文件名,还有路径很有讲究)。

 

2.使用绝对路径来加载共享库,这种方法比较适合开发阶段调试,没有前面那么多条条框框。

 

好了,第一次先说这么多,后面讲写更深入的部分。

 

 

 

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 拘留37天后没有放人怎么办 强制执行执行的财产不够怎么办 收到公安局拘留通知家属应该怎么办 对方不出谅解书怎么办 寻衅滋事没抓的 怎么办 公务员政审父母拘留过怎么办 我参与了网赌怎么办 亲人出车祸去世家属怎么办 车牌换了原保险怎么办 北京车牌夫妻变更车险怎么办 赌博拘留15天不交罚款怎么办 给人打了不赔钱怎么办 打了人对方讹钱怎么办 换车了原来的etc怎么办 换异地车牌了etc怎么办 被执行人拘留15天后不还钱怎么办 被执行人拘留后还是不还钱怎么办 摩托车套牌被交警扣了怎么办 套牌摩托车遇到交警怎么办 不知情收到小偷东西了怎么办 盗窃罪法院判定农民赔钱没钱怎么办 公安局通知家属取刑拘通知书怎么办 老公诈骗坐牢家人该怎么办 家人被拘留我该怎么办 车牌被偷了一个怎么办 车牌给人家偷了怎么办 收购了偷来的铝怎么办 员工自动离职后档案怎么办 辞职了老板不发工资怎么办 上班老板不发工资怎么办 逮捕后延长羁押期限怎么办手续 员工提出辞职公司不同意怎么办 员工提出辞职后即不来上班怎么办 打架把对方打成轻伤害怎么办 被刑拘了家人该怎么办 看守所在押人员检查出乙肝怎么办 孩子不写作业老师该怎么办 孩子老师向我表白该怎么办 幼儿园老师打孩子家长该怎么办 老师对孩子太苛刻该怎么办 孩子不敢上学怕老师该怎么办