首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java调用本土方法简单测试

2012-10-17 
Java调用本地方法简单测试系统环境:LinuxCentOs5Java平台:JDK1.6.0_27本地方法:使用C语言,gcc编辑器这里只

Java调用本地方法简单测试
系统环境:Linux  CentOs5
Java平台:JDK1.6.0_27
本地方法:使用C语言,gcc编辑器


这里只是一个简单的描述,其目的只是为了调用本地方法这个过程的跑通,所以一切从简!

过程步骤:
           1.编写Java类文件,包含本地方法声明以及调用本地方法的main方法。
           2.使用javac 编译Java类文件,与正常编译方式一样。
           3.使用javah -jni来根据编译后的class文件生成本地方法声明的.h头文件。
           4.编写本地方法的实现C文件,其中包含第三步中生成的.h头文件。
           5.gcc -c 编译C语言文件。
           6.gcc -shared -o libNativeFile.so NativeFile.o,根据第五步编译生成的o文件来生成库文件即so文件,该文件名前面要多添加一个lib。



具体操作步骤如下:

       编写TestNative.java如下:




     这里面包含着一个方法的声明,但是已经与我们开始在java文件里面的声明完全不同。

     下一步我们新建一个NativeMethod.c文件,其内容如下:


     


      然后: gcc -c NativeMethod.c
       
      得到一个o文件

      然后: gcc -shared -o libNativeMethod.so NativeMethod.o

      就能够得到一个以so结尾的库文件。

      然后就是最后一步了,设置路径,方式应该有不少种方法。
        1.可以在/etc/bashrc里面添加如下(未试过):
               export LD_LIBRARY_PATH=/home/chengshu/java

        2.在/etc/profile文件中添加(也未试过,本人比较懒!)
               LD_LIBRARY_PATH=/home/chengshu/java

        3.直接在linux控制台执行(我喜欢!):export LD_LIBRARY_PATH=/home/chengshu/java

        4.在执行最后的class文件的时候指定,即:
            java -Djava.library.path=. TestNative

     解释一下,这个/home/chengshu/java路径即我们的so文件所在的路径,我一直在该目录下工作,所以在上面的第四种方法的时候直接指定为"."即是当前目录,so文件即在下面。

      一切都大功告成了,执行程序!!!

      执行命令可以参看:java TestNative
      或者:            java -Djava.library.path=. TestNative


      即可得到输出:zhangsan hello


添加:有时候java程序需要使用一些jar包,则需要在mf文件里面配置:
Class-Path: jar/jpcap.jar  注意:":"之后必须有一个空格,后面路径是相对于执行jar包而言的。搞错了,这是对上一篇文章的补充!

   
     

热点排行