下面是小编整理的Java中Jni调用DLL文件试验内容,希望可以为您带来帮助!更多内容请关注应届毕业生考试网!
所有文件均在E:路径下。
安装jdk1.6.0_07
安装了VC++6.0
第一步,
第二步,
E:>javac
得到
s
第三步,
E:>javah HelloWorld
得到
HelloWorld.h
第四步,
编写一个C文件
HelloWorldImp.c
第五步,
使用cl编译
第六步,
成功
后来继续试验,目标是Java调用打印机的,方法是dll调用dll:建立中间dll,兼顾Jni方法,调用实现动作。(提前告诉您结果:我失败了)
------------------------下面有源码:
所有文件均在E:路径下。
安装jdk1.6.0_07
安装了VC++6.0
第一步,
/**
* @author pinkfloyd
*
*/
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
new HelloWorld()layHelloWorld();
}
public native void displayHelloWorld();
static{
Library("hello");
}
}
第二步,
E:>javac
得到
s
第三步,
E:>javah HelloWorld
得到
HelloWorld.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
第四步,
编写一个C文件
HelloWorldImp.c
#include "jni.h"
#include "HelloWorld.h"
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) {
printf("Hello world!n");
return;
}