`javah`(JDK 8 及之前)從編譯後的類別生成 JNI 所需的 C 標頭檔(`.h`)與存根檔(`.c`),供原生方法實現調用。JDK 9+ 改用 `javac -h` 直接生成。
# 生成標頭檔到指定目錄
javah -d jni/include -classpath build/classes com.example.NativeDemo
# 生成存根檔(含 JNI 函數骨架)
javah -stubs -d jni/src com.example.NativeDemojavac -h jni/include -d build/classes src/com/example/NativeDemo.java| 選項 | 說明 |
|---|---|
| -d <目錄> | 輸出目錄 |
| -o <檔案> | 合併輸出單一檔案 |
| -stubs | 生成存根而非標頭檔 |
| -classpath | 類別搜尋路徑 |
| -verbose | 顯示處理進度 |