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!
上一篇: DLL的静态调用