zoukankan      html  css  js  c++  java
  • JNI QuickStart,Java调用C++实现

    一,构建Java本地方法类,声明native方法,编译

    类文件:MyTest1.java

    package com.merrick.test;
    
    class MyTest1 {
        
        public native int addnumber1(int a, int b);
        
        static{
            
            //System.
            System.loadLibrary("jnidll1");//必须省略后缀.dll
        }
        
        public static void main(String args[])
        {
            
            int res = new MyTest1().addnumber1(1234,234);
            System.out.println(res);
        }
    }


    编译类文件生成class文件:>javac -verbose -d . MyTest1.java

    二,javap生成JNI样式的C头文件

    生成头文件:>javah MyTest1

    头文件:com_merrick_test_MyTest1.h

    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class com_merrick_test_MyTest1 */
    
    #ifndef _Included_com_merrick_test_MyTest1
    #define _Included_com_merrick_test_MyTest1
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
     * Class:     com_merrick_test_MyTest1
     * Method:    addnumber1
     * Signature: (II)I
     */
    JNIEXPORT jint JNICALL Java_com_merrick_test_MyTest1_addnumber1
      (JNIEnv *, jobject, jint, jint);
    
    #ifdef __cplusplus
    }
    #endif
    #endif

    三,在VS中新建win32 dll项目

    项目名称jnidll1

    四,复制生成的JNI样式.h文件至win32 dll项目文件夹

     dll项目添加既有项:com_merrick_test_MyTest1.h

    五,实现.h文件中的native方法

     jnidll1.cpp

    // jnidll1.cpp : 定义 DLL 应用程序的导出函数。
    //
    
    #include "stdafx.h"
    
    #include "com_merrick_test_MyTest1.h"
    
    JNIEXPORT jint JNICALL Java_com_merrick_test_MyTest1_addnumber1
    (JNIEnv *env, jobject obj, jint a, jint b){
        return a+b;
    };

    六,生成dll:jnidll1.dll

    七,在java代码中调用DLL中的native方法,测试

    复制jnidll1.dll至java程序主目录

    测试java调用:>java com.merrick.test.MyTest1

    输出:>1468

  • 相关阅读:
    ueditor问题解决
    Odoo内部视图格式——widget
    Odoo进销存业务学习笔记
    Odoo权限设置机制
    Odoo配置文件
    Odoo——self的使用
    Odoo 启动选项
    Yiiyii2.0将高级模板的入口文件移到根目录
    Xmanager xbrower 远程linux下的应用(pycharm phpstorm)
    mysql backup
  • 原文地址:https://www.cnblogs.com/m160331/p/9760371.html
Copyright © 2011-2022 走看看