按照網上抄來的javah用法一般出錯,今天查了一下午在一篇文章(http://www.ibm.com/developerworks/cn/java/j-jtctips/part6/index2.html)中看到:“Javah
獲取您的 Java 原始檔並生成 C 標頭檔案,其中包含您的 Java 程式碼中所有本機方法的
JNI 存根(stub)。如果您正在生成一個類的 JNI 存根,而且您已經把這個類定義為包的一部分,那麼您 必須指定完全限定的類名。”
現在總結如下:
TestHello.java所在的的目錄如下:
E:\rcpworkspace\com.dlut.datasender\test\com\dlut\datasender\communication
TestHello.java
- package com.dlut.datasender.communication;
- public class TestHello {
- static {
- System.loadLibrary("TestHello");
- }
- public static native void hello(String msg);
- public static void main(String[] args) {
- hello("Hello,Kimm!");
- }
- }
1.執行cmd命令,cd到TestHello.java所在的目錄下面,輸入:
- javac TestHello.java
沒有出錯的話會在當前目錄(E:\rcpworkspace\com.dlut.datasender\test\com\dlut\datasender\communication)下面生成TestHello.class檔案。
2.cd到E:\rcpworkspace\com.dlut.datasender\test\(source folder根目錄)
輸入: set classpath=E:\rcpworkspace\com.dlut.datasender\test 回車
3.再輸入:javah -jni com.dlut.datasender.communication.TestHello 回車
這時候在E:\rcpworkspace\com.dlut.datasender\test下面會生成一名為com_dlut_datasender_communication_TestHello.h的檔案
4.重新命名com_dlut_datasender_communication_TestHello.h為TestHello.h即可
轉自:http://www.iteye.com/topic/356188