您的位置:澳门新葡8455最新网站 > 澳门新葡8455最新网站 > JNI使用方法,未能加载文件或程序集

JNI使用方法,未能加载文件或程序集

发布时间:2019-11-10 13:03编辑:澳门新葡8455最新网站浏览(190)

    图片 1

    JNI可以让我们在java代码中调用本地库的机能。

    revit二回开荒中遇见的主题素材

    下边记录一下JNI轻松的施用方法

    RevitAPIUI.dll 只可以 Native Library 中实行; 脱离了Native Library,API是跑不起来的 。

    1. 创建java端接口

    检查程序流程:登入,配置,运营revit。

    在开发银行revit早先不可能试行RevitAPI.dll和RevitAPIUI.dll的相干办法,

     1 public class JNIIterface { 2  3     // 导入最终生成的dll文件 4     static { 5         System.loadLibrary("JNIDemo"); 6     } 7  8     // 声明dll文件中实现的接口 9     public native int MyMethod();10     11     public native int add(int x, int y);12 }
    

    聊到底开掘极度捕获,  MessageShow.Show(e);封闭的方法援用的RevitAPIUI中的内容。

      2. 生成接口对应的C的头文件

    删除或改造方法消除难题。

        上边创造的JNIIterface类,JNIIterface .class文件的路子:JNIDemobinbaseJNIIterface .class

     

        在工程目录下的bin目录下实践命令:javah -classpath . -jni base.JNIIterface

        然后会在JNIDemobin目录下生成base_JNIIterface.h文件

      3.利用visual studio编写接口的兑现

        创立C工程,具体步骤如下:

          第一步:

          图片 2

          第二步:

          图片 3

          第三部:

          图片 4

        导入必要的头文件

          将下面第二步生成的头文件,以致jdk根目录下include目录下的jni.h和

        include的win32目录下的jni_md.h文件拷贝到工程目录下(在创建的工程方面右键,然后点击倒数第二项就足以展开卡塔 尔(英语:State of Qatar)

    图片 5

        创制作用达成文件

          在工程目录下源文件上右键,然后点击-》,创建三个cpp文件

        并编写如下代码:

     1 #include "base_JNIIterface.h" 2 #include "jni.h" 3 #include <stdio.h> 4  5 JNIEXPORT jint JNICALL Java_base_JNIIterface_MyMethod 6   (JNIEnv *, jobject){ 7       printf("成功实现JNI测试DEMO"); 8       return 0; 9 }10 11 JNIEXPORT jint JNICALL Java_base_JNIIterface_add12   (JNIEnv *, jobject, jint a, jint b){13       return a + b;14 }
    

      4.生成dll文件

        在工程目录中的「解决方案」上右键,选拔属性,然后如下图所示构成连串

          图片 6

        然后编译工程后,会在工程目录下的Release目录下成成dll文件

          图片 7

      5. 将dll文件配置到java工程

          首先向dll文件放在java工程根目录下的lib目录下

          然后依据如下步骤将dll文件作为Native Library增添进工程

            图片 8

        编辑上海体育地方所示的Native Library Location,然后在弹出的界面接收Native Library所在的文件夹:

            图片 9

        6.编写制定测量试验类,检证JNI是不是中标接收

     1 public class HelloJNI { 2  3     public static void main(String[] args) { 4         JNIIterface hw = new JNIIterface(); 5         int t = hw.add(3, 7); 6         int s = hw.MyMethod(); 7         System.out.println; 8         System.out.println; 9     }10 }
    

        运转后的测量试验结果如下:

    100成功??JNI??DEMO
    

    地方便是记录了运用JNI的最宗旨步骤。

    对此哪些选取已经写好的第三方dll文件的功用,比方系统的dll文件,还亟需张开深刻研商。

    参照小说:

    本文由澳门新葡8455最新网站发布于澳门新葡8455最新网站,转载请注明出处:JNI使用方法,未能加载文件或程序集

    关键词: