1. 程式人生 > >idea使用javah一鍵編譯JNI的.標頭檔案

idea使用javah一鍵編譯JNI的.標頭檔案

.h標頭檔案中方法命名規範需要用到包名,所以,使用javah編譯jni時工作目錄一定要是在包名父目錄中,否則Exception in thread “main” java.lang.IllegalArgumentException: Not a valid class name:

  • at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:129)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:107)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:64)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:503)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:329)
    at com.sun.tools.javah.Main.main(Main.java:46)

被右鍵編譯的類名

$FileClass$

一般預設包名父目錄是這樣,如果是idea建立的專案就用下面固定寫法就行,其它的根據需求自定義:

$ProjectFileDir$\app\src\main\java

貼幾張圖,

步驟一:
在這裡插入圖片描述
步驟二:

在這裡插入圖片描述
步驟三:
在這裡插入圖片描述

OK