• Windows下JNI执行步骤


    问题描述:

        java JNI使用

    问题解决:

    clipboard

    JNI编写步骤:

    (1)编写带有native声明的方法的java类

        (2)使用javac编译所写的java类,然后使用javah生成扩展名为.h的文件

        (3)使用C/C++实现本地方法

        (4)将C/C++编写的文件生成动态链接库

    具体实践:

        (1)编写带有native方法的java类

    clipboard

    注:

    声明native方法:如果你想将一个方法做为一个本地方法的话,那么你就必须声明该方法为native的,并且不能实现。

    Load动态库:System.loadLibrary("hello");------加载动态库(我们可以这样理解:我们的方法 display()没有实现,但是我们在下面就直接使用了,所以必须在使用之前对它进行初始化)这里一般是以static块进行加载的。同时需要注意的是System.loadLibrary();的参数“hello”是动态库的名字。

        (2)使用javac编译所写java类

    clipboard

    注:

        使用Eclipse编写的项目,在自动保存之后,系统自动会在项目的bin目录下生成包文件和.class文件

        (3)使用javah生成 .h 的头文件

    clipboard

    注:

        以上显示了在DOS下,使用javah生成.h文件的方法,首先转到 项目的bin目录之下,使用命令

    javah   -v    -classpath   .   com.jni.HelloWorld    查看生成 HelloWorld.h 文件的过程,

    其中参数 -v 是显示详细信息的命令。 -classpath 用来加载类的路径

    命令中 -v  可以省略,但是-classpath不能少,-classpath之后的   .    也不可少,com.jni.HelloWorld表示的是comjniHelloWorld.class 文件 

    clipboard

    注:

        以上显示了javah命令的使用方法

    clipboard

    注:

        以上显示了javah 命令生成 HelloWorld.h文件的位置

    clipboard

    注:

        以上是javah命令生成 HelloWorld.h文件的内容

        (3)使用C/C++实现native方法

    clipboard

        (4)生成dll文件

    clipboard

    注:

        详细生成dll文件的解释,参考《JNI中cl命令生成DLL文件》

    (5)项目执行

        将生成的hello.dll文件放置在C:WindowsSystem32 目录之下

    clipboard

    注:

        C:WindowsSystem32是java可以访问到的路径

    clipboard

    注:

        成功访问到DLL文件

  • 相关阅读:
    关于左边图片右边列表的新闻布局模式
    Yahoo!团队实践分享:网站性能优化的34条黄金守则(三)—JavaScript和CSS
    Yahoo!团队实践分享:网站性能优化的34条黄金守则(二)—服务器
    浅谈HTTP中Get与Post的区别
    司徒大人的面试题,自勉~
    善待PSD — 好设计师,从细节做起
    Yahoo!团队实践分享:网站性能优化的34条黄金守则(一)—内容
    恕我简陋,恕我臃肿
    【svg+vml】部分尝试
    记录:关于Drag&Drop Upload
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3220330.html
Copyright © 2020-2023  润新知