javac
(編譯工具)
[ options ] [ sourcefiles ]
參數可按任意次序排列
options:
- -g 生成所有調試信息
- -g:none 不生成任何調試信息
- -g:{lines,vars,source} 只生成某些調試信息
- -nowarn 不生成任何警告
- -verbose 輸出有關編譯器正在執行的操作的消息
- -deprecation 輸出使用已過時的API的源位置
- -classpath <路徑> 指定查找用戶類文件的註釋處理程序的位置
- -cp <路徑> 指定查找用戶類文件和註釋處理程序的位置
- -sourcepath <路徑> 指定查找輸入源文件的位置
- -bootclasspath <路徑> 覆蓋引導類文件的位置
- -extdirs <目錄> 覆蓋所安裝擴展的位置
- -endorseddirs <目錄> 覆蓋簽名的標準路徑的位置
- -d <目錄> 指定放置生成的類文件的位置
- -s <目錄> 指定放置生成的源文件的位置
- -version 版本信息
- -Werror 出現警告時終止程序
命令行選項。
sourcefiles
一個或多個要編譯的源文件(例如 MyClass.java)
javap
(反編譯工具)
這個主要用來查看生成JAVA方法的簽名,以便於C++中調用類中的方法
javap [options] [classes]
常用options
- -version 版本信息
- -v -verbose 打印附加信息(堆棧大小、各方法的 locals 及 args 數,以及class文件的編譯版本)
- -l 輸出行及局部變量表
- -public 只顯示 public 類及成員
- -protected 只顯示 protected 和 public 類及成員
- -package 只顯示包、protected 和 public 類及成員。這是缺省設置
- -private 顯示所有類和成員
- -s 輸出內部類型簽名(主要使用這個參數查看簽名)
- -classpath[路徑] 指定 javap 用來查找類的路徑。如果設置了該選項,則它將覆蓋缺省值或 CLASSPATH 環境變量。目錄用冒號分隔
[classes]
要反編譯的類名
運行結果圖:
javah
(自動生成JNI頭文件)
引自百度百科:javah 生成實現本地方法所需的 C 頭文件和源文件。C 程序用生成的頭文件和源文件在本地源代碼中引用某一對象的實例變量。.h 文件含有一個 struct 定義,該定義的佈局與相應類的佈局平行。該 struct 中的域對應於類中的實例變量。
javah [options] [classes]
[options]
- -o <文件> 輸出文件(只能使用 -d 或 -o 之一)
- -d <目錄> 輸出目錄
- -v -verbose 啓用詳細輸出
- -version 輸出版本信息
- -jni 生成JNI樣式的標頭文件(默認值,可以不寫)
- -force 始終寫入輸出文件
- -classpath <路徑> 從中加載類的路徑
- -bootclasspath <路徑> 從中加載引導類的路徑
[classes]
是使用其全限定名稱指定的,例如 java.lang.Object.MyClass
運行指令: