java 调用 dll&javah命令生成头文件 jni

  • 第一步 创建Java工程,命名JniDemo,添加JniDemo.java

1.png

第二步 在Java类中添加native方法

/**
 * @author 
 */
public class JniDemo{
    public native static void set(int i);
    public native static int get();
}

第三步 使用javah命令生成头文件

在cmd中执行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 头文件

2.png

第四步 创建DLL项目,使用Vs2010

创建Win32项目,项目名字JniDemo

3.png
4.png
5.png

第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下

其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下

6.png

在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include 改为 #include "jni.h"

第六步 在Jni.cpp中实现C++方法

7.png

第七步 生成64位dll库

先修改配置管理器

8.png
12.png
13.png
14.png

然后生成64dll库

9.png

第八步 把64位dll库拷贝至Java JniDemo项目根目录下,修改JniDemo.java

注意64位dll在X64目录下,然后修改JniDemo.java如下

   package com.bk.jnidemo;

   public class JniDemo {
    static{
        System.loadLibrary("JniDemo");
    }    
    public native static void set(int i);
    public native static int get();

    public static void main(String[] args) {
        set(100);
        System.out.println(get());

    }
 }

第九步 运行

10.png
11.png


javah命令生成头文件 jni

假如项目路径 D:\Workspacess\testJavaCallDll
要生成的类 NativeTest.java

  1. 打开cmd以及目录

打开cmd
然后进入src目录 演示:cd D:\Workspacess\testJavaCallDll\src

  1. 生成class

    命令:javac testJavaCallDll/NativeTest.java
    演示:D:\Workspacess\testJavaCallDll\src>javac testJavaCallDll/NativeTest.java

  2. 生成头文件

    命令:javah testJavaCallDll.NativeTest
    演示:D:\Workspacess\testJavaCallDll\src>javah testJavaCallDll.NativeTest

Last modification:January 17th, 2018 at 05:55 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment