javah 命令小結

weixin_34402090發表於2011-11-04

按照網上抄來的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

Java程式碼  收藏程式碼
  1. package com.dlut.datasender.communication;  
  2.   
  3. public class TestHello {  
  4.   
  5.     static {  
  6.         System.loadLibrary("TestHello");  
  7.     }  
  8.   
  9.     public static native void hello(String msg);  
  10.   
  11.     public static void main(String[] args) {  
  12.         hello("Hello,Kimm!");  
  13.     }  
  14. }  

1.執行cmd命令,cd到TestHello.java所在的目錄下面,輸入:

Java程式碼  收藏程式碼
  1. 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


相關文章