DELPHI 开发JNI 之 JAVA 对象String 应用

    技术2022-05-20  37

    DELPHI 开发JNI JAVA 对象String 应用

    前言:

    DELPHI 的教程很多,在这里不加赘述,着重介绍JAVA里的常用对象的调用,

    公司有这方面的功能需求,用了2天的时间研究了下JNI相关的东西.把我在研究过程中比较挠头的一些问题的解决方法发上来. 主要介绍 JAVA中常用对象的在开发JNI时候的应用.

       String对象应用

    JAVA String 属于一个对象,JNI不能识别String 类型. 所以在用GetMethodID 等方法的时候,对于传入和传出参数类型为String 类型的函数 需要将数据类型定义为 Ljava/lang/String;  DLEPHI 则对应的是 JString

    例子:

    ResultSet对象有个方法 String getString(String columnName)  这段代码执行的过程是 调用ResultSet 对象的 String getString(String columnName) 方法 获取字段 “cs_name” 的值 ,省略了一些初始化的过程.

    Var

      JVM: TJNIEnv;

    RsObj : JOjbect;  //ReslutSet 对象

    RsClass : JClass;  //

    Mid : JMethodID;

    JFVS : jString ; 

    JTmpStr : jString;

       Begin

           JVM := TJNIEnv.Create(PEnv);

           //RsObj 初始化过程省略

           RsClass := JVM.GetObjectClass(RSOBJ);  //获得RsObj的类 

        JTmpStr := JVM.StringToJString('cs_name');  // cs_name 为字段名

           Mid := JVM.GetMethodID(RSClass,'getString','(Ljava/lang/String;)Ljava/lang/String;');

           JFVS := JVM.CallNonvirtualObjectMethod(RSOBJ,RSClass,mid,[JTmpStr]); 

       End;

       


    最新回复(0)