zoukankan      html  css  js  c++  java
  • JNI 从零开始一次DEMO调用 IDEA 2018.2.5 + visual studio 2019

     先来一张效果图, 下一步再开始

     1:创建一个HelloWorld.java

    public class HelloWorld {
        static {
            System.loadLibrary("hello"); // Load native library at runtime
            // hello.dll (Windows) or libhello.so
            // (Unixes)
        }
    
        // Declare a native method sayHello() that receives nothing and returns void
        private native void sayHello();
        
        // Test Driver
        public static void main(String[] args) {
            new HelloWorld().sayHello(); // invoke the native method
        }
    }

    2 生成.h文件

     方式1:  IDEA 设置生成.h 的文件

     在HelloWorld.java文件中  点击右键>External Tools>Generate Header File, 成功可看见jni目录有com_HelloWorld.h文件

    方式2: 命令生成

    E:workspace_ideajnisrccom>javac HelloWorld.java
    E:workspacejnisrc>javah -classpath . -d com com.HelloWorld

    3 下载的2019 visual studio 重启电脑

     

     

    复制3个文件到目录中

     

    在复制到头文件目录中

     修改com_HelloWorld.h 文件

       #include <jni.h> 改为 #include "jni.h"

    源文件 新增main.cpp文件 右击新建项

     

    填写main.cpp 内容:如下

    #include "com_HelloWorld.h"
    #include "jni.h"    //注意添加这句
    
    #include<iostream>
    
    
    using namespace std;
    
    JNIEXPORT void JNICALL Java_com_HelloWorld_sayHello(JNIEnv* env, jobject obj)
    {
        cout << "Hello World!" << endl;
        cout << "I come from C++!" << endl;
    }

     此时右击,-》 配置管理器,

     关闭 右击 Project2 点击生成 可看见日志 如下:

     复制这个dll文件,改名hello.dll  并放在项目路径下面.

    若出现错误, 请在活动解决平台方案选择 x64

     参考地址: https://blog.csdn.net/wsxzhbzl/article/details/82727034

  • 相关阅读:
    40. Combination Sum II
    39. Combination Sum
    找一找
    37. Sudoku Solver
    Activiti 多个并发子流程的应用
    BPMN2新规范与Activiti5
    BPMN这点事-BPMN扩展元素
    JAVA规则引擎 -- Drools
    工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
    activiti 学习( 三 ) 之 流程启动者
  • 原文地址:https://www.cnblogs.com/eason-d/p/11168584.html
Copyright © 2011-2022 走看看