欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA调用DLL文件

程序员文章站 2022-06-24 21:56:39
...

1 创建 TestDll.java
public class TestDll {
public native void sayHello();

public void speakHello(){
System.out.println("Hello!");
}
public static void main(String[] args) {
System.loadLibrary("TestDll");
TestDll tnt = new TestDll();
tnt.sayHello();
}
}
编译 javac TestDll.java 生成 TestDll.class
javah TestDl 生成 TestDll.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class TestDll */

#ifndef _Included_TestDll
#define _Included_TestDll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: TestDll
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_TestDll_sayHello
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

2 vc 下新建 win32 dll TestDll
新建 class TestDll
用javah生成的.h 替换 vc 中的h 文件
引入java环境中jni.h和jni_md.h
编写TestDll.cpp

#include "TestDll.h"

//////////////////////////////////////////////////////////////////////
#include<iostream>

using namespace std;

JNIEXPORT void JNICALL Java_TestDll_sayHello(JNIEnv *env, jobject obj)

{

cout<<"Hello World!"<<endl;

}

编译生成 TestDll.dll文件
3 把生成的TestDll.dll文件考入到TestDll.java 相同路径下

java TestDll

控制台输出
Hello World!