Java 使用dll动态链接库(native使用)

编译环境:https://sourceforge.net/projects/orwelldevcpp/
gcc:64位

Hello.java

public class Hello
{
    static
    {
        System.loadLibrary("Hello");
    }
     
    public static native void sayHello();
     
    @SuppressWarnings("static-access")
    public static void main(String[] args)
    {
        new Hello().sayHello();
    }
}

命令行命令

javac Hello.java
javah Hello

hello.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Hello */

#ifndef _Included_Hello
#define _Included_Hello
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     Hello
 * Method:    sayHello
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_Hello_sayHello
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

hello.c

#include "Hello.h"
#include <stdio.h>
 
JNIEXPORT void JNICALL Java_HelloNative_sayHello() 
{
    printf("Hello,zn");    
}

进行编译,生成dll文件

注:dll文件需要是64位的

运行hello.class
结果如下:


结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。