- 相關(guān)推薦
Java中Jni調(diào)用DLL文件試驗(yàn)
下面是小編整理的Java中Jni調(diào)用DLL文件試驗(yàn)內(nèi)容,希望可以為您帶來幫助!更多內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!
所有文件均在E:\路徑下。
安裝jdk1.6.0_07
安裝了VC++6.0
第一步,
HelloWorld.java
第二步,
E:\>javac HelloWorld.java
得到
HelloWorld.class
第三步,
E:\>javah HelloWorld
得到
HelloWorld.h
第四步,
編寫一個(gè)C文件
HelloWorldImp.c
第五步,
使用cl編譯
第六步,
成功
后來繼續(xù)試驗(yàn),目標(biāo)是Java調(diào)用打印機(jī)的tsclib.dll,方法是dll調(diào)用dll:建立中間dll,兼顧Jni方法,調(diào)用tsclib.dll實(shí)現(xiàn)動(dòng)作。(提前告訴您結(jié)果:我失敗了)
------------------------下面有源碼:
所有文件均在E:\路徑下。
安裝jdk1.6.0_07
安裝了VC++6.0
第一步,
HelloWorld.java
/**
* @author pinkfloyd
*
*/
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動(dòng)生成方法存根
new HelloWorld().displayHelloWorld();
}
public native void displayHelloWorld();
static{
System.loadLibrary("hello");
}
}
第二步,
E:\>javac HelloWorld.java
得到
HelloWorld.class
第三步,
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
第四步,
編寫一個(gè)C文件
HelloWorldImp.c
#include "jni.h"
#include "HelloWorld.h"
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) {
printf("Hello world!\n");
return;
}
【Java中Jni調(diào)用DLL文件試驗(yàn)】相關(guān)文章:
JNI是怎樣java調(diào)用c動(dòng)態(tài)庫07-09
java調(diào)用bat文件的方法08-09
關(guān)于java調(diào)用bat文件的方法08-12
在Java中調(diào)用存儲(chǔ)過程是怎樣的07-24
java調(diào)用的方法04-20