美文网首页
编写可供Java使用的dll

编写可供Java使用的dll

作者: xinyin015 | 来源:发表于2020-04-15 22:01 被阅读0次

1.在Java中先编写好native方法,以便实现对dll的调用,可使用Eclipse(自动编译,省去手动),例子如下

package com.xiganglive.dll;

public class Native {
    static native int add(int a,int b);
    static {
        System.loadLibrary("nativedll");
    }
}

2.进入eclipse的编译输出根目录,默认为bin/,使用javah命令.h生成头文件

$ javah --help
Usage:
  javah [options] <classes>
where [options] include:
  -o <file>                Output file (only one of -d or -o may be used)
  -d <dir>                 Output directory
  -v  -verbose             Enable verbose output
  -h  --help  -?           Print this message
  -version                 Print version information
  -jni                     Generate JNI-style header file (default)
  -force                   Always write output files
  -classpath <path>        Path from which to load classes
  -cp <path>               Path from which to load classes
  -bootclasspath <path>    Path from which to load bootstrap classes
<classes> are specified with their fully qualified names
(for example, java.lang.Object).
#如果你的Java程序带有package,需要设置classpath
$ javah -classpath . -jni com.xiganglive.dll.Native
# bin目录中将会生成对应的.h文件,此例中为com_xiganglive_dll_Native.h
$ ls
com/  com_xiganglive_dll_Native.h

3.创建c++项目,设置为dll模板

snipaste20200415_213708.png

将com_xiganglive_dll_Native.h复制到C++项目目录里
在C++项目里导入h文件
导入后会发现找不到<jni.h>,需配置项目属性include目录,添加Java根目录下的include目录

snipaste20200415_214307.png
snipaste20200415_215050.png
snipaste20200415_215011.png

4.现在就可以执行build,得到对应dll,放入java中引用

snipaste20200415_215412.png

5.The last,如果出现错误,请按如下步骤检查你的操作

a.检查你javah对应Java版本是否与实际运行一致
b.检查C++项目的项目属性是否正确引入include目录
c.build出来的dll,需与编译时保持一致,x86编译出的dll只能在32位JVM上运行,反之亦然

相关文章

  • 编写可供Java使用的dll

    1.在Java中先编写好native方法,以便实现对dll的调用,可使用Eclipse(自动编译,省去手动),例子...

  • C++编写dll与调用

    重要参考 c++ dll编写与加载;C++编程笔记:dll的生成与使用;8.DLL导出C++类; 在 Visual...

  • windows jni流程 dll eclipse visual

    windows 下生成 dll 动态库linux 下生成 so库 1.编写java 代码 cmd进入 MainTe...

  • JNI - dll回调java

    之前在项目中由于需要使用java调用dll实现一些功能,同时需要dll回调java中的方法,故将个人学习的内容记录...

  • java 自定义点击、键盘事件

    首先必要的:c++ dll编写与加载c++ windows平台的Hook掌握hook与dll编写。 学习jni,因...

  • 调用动态链接库DLL

    DLL文件编写 Python调用

  • Delphi 7:操作DLL

    一、编写DLL 打开 Delphi 7 主窗体,File -> New -> Other -> DLL Wizar...

  • Mac系统下JNI实现native方法(Java调用C++语言的

    JNI的实现步骤如下: 编写带有native声明的方法的Java类 使用javac命令编译编写的Java类 使用j...

  • 第19章 DLL基础

    19.1 DLL和进程的地址空间 DLL通常由一组可供任何应用程序的独立函数组成。在DLL中通常没有用来处理消息循...

  • JNI

    一、开发步骤: 编写带有 native 声明的方法的 Java 类 使用 javac 命令编译编写的 Java 类...

网友评论

      本文标题:编写可供Java使用的dll

      本文链接:https://www.haomeiwen.com/subject/vzahvhtx.html