Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\toto>javah
用法:javah [选项] <类>
其中 [选项] 包括:
-help 输出此帮助消息并退出
-classpath <路径> 用于装入类的路径
-bootclasspath <路径> 用于装入引导类的路径
-d <目录> 输出目录
-o <文件> 输出文件(只能使用 -d 或
-jni 生成 JNI样式的头文件(默
-version 输出版本信息
-verbose 启用详细输出
-force 始终写入输出文件
使用全限定名称指定 <类>(例
如,java.lang.Object)。
C:\Users\toto>cd F:\android\TestNativeCode\bin
C:\Users\toto>F:
F:\android\TestNativeCode\bin>javah cn.itcast.TestNati
F:\android\TestNativeCode\bin>
一个例子:
package cn.itcast;
public class TestNative {
/**
* 通过jdk目录下的javah.exe工具生成c/c++的头文件
*
* 1、进入命令行。
* 用法:javah [选项] <类>
* 其中 [选项] 包括:
* -help 输出此帮助消息并退出
* -classpath <路径> 用于装入类的路径
* -bootclasspath <路径> 用于装入引导类的路径
* -d <目录> 输出目录
* -o <文件> 输出文件(只能使用 -d 或 -o 中的一个)
* -jni 生成 JNI样式的头文件(默认)
* -version 输出版本信息
* -verbose 启用详细输出
* -force 始终写入输出文件
*
* 2、找到TestNative.class文件,我的是存在:F:\android\TestNativeCode\bin\cn\itcast\TestNative.class
*
* 3、通过如下的:
* C:\Users\toto>cd F:\android\TestNativeCode\bin
*
*C:\Users\toto>F:
*
*F:\android\TestNativeCode\bin>javah cn.itcast.TestNative
*通过这些命令就可以在F:\android\TestNativeCode\bin目录下生成一个cn_itcast_TestNative.h文件了,如下:。
*
** DO NOT EDIT THIS FILE - it is machine generated *//*
* #include <jni.h>
* // Header for class cn_itcast_TestNative
*
* #ifndef _Included_cn_itcast_TestNative
* #define _Included_cn_itcast_TestNative
* #ifdef __cplusplus
* extern "C" {
* #endif
*
* Class: cn_itcast_TestNative
* Method: sayHello
* Signature: ()V
*Java_包名_方法名。
*
*JNIEXPORT void JNICALL Java_cn_itcast_TestNative_sayHello
* (JNIEnv *, jobject);
*
*#ifdef __cplusplus
* }
*#endif
* #endif*/
public native void sayHello();
public static void main(String[] args) {
}
}
第二个例子:
package democalldll;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2010</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class DemoCallDLLApp {
static{
System.loadLibrary("test");
}
private native int showMsgBox_native(String str);
public int showMsgBox(String str){
return showMsgBox_native(str);
}
public DemoCallDLLApp() {
}
public static void main(String[] args) {
DemoCallDLLApp demoCallDLLApp1 = new DemoCallDLLApp();
demoCallDLLApp1.showMsgBox("Call showMsgBox_native Successfully!");
}
}