首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 核心工具鏈:javac 編譯與 java 執行命令全解析

     編輯:Java 程式設計入門

JDK 提供的核心開發工具中,javac(編譯器)與 java(運行器)是最基礎也最常用的兩個命令。本文系統梳理其參數、工作流程、常見坑點,助你從「能跑」走向「懂原理」。

1. 編譯器 javac

將 .java 源文件編譯為 .class 位元碼文件。

基本語法

javac [選項] 源文件.java

常用選項

選項說明
-d 目錄指定 .class 輸出目錄(保持包結構)
-cp / -classpath 路徑指定類搜尋路徑
-sourcepath 路徑指定源文件搜尋路徑
-encoding UTF-8指定源文件編碼,避免中文亂碼
-g生成所有調試資訊(行號、變量)
-nowarn關閉警告輸出
-version顯示編譯器版本

默認行為:無 -d 時,.class 與 .java 同目錄。

2. 運行器 java

啟動 JVM,載入類,執行 main 方法。

執行類文件

java [選項] 全限定類名 [參數...]
  • 類名不含 .class 後綴,需包含完整包名(如 com.example.Main)。
  • 大小寫敏感,java Main ≠ java main。

執行 JAR 文件

java [選項] -jar 文件.jar [參數...]
  • JAR 必須包含 MANIFEST.MF 指定 Main-Class。
  • -jar 會忽略 -cp/CLASSPATH。

常用運行選項

選項說明
-cp / -classpath類搜尋路徑(非 -jar 模式)
-Xms / -Xmx初始/最大堆大小
-ea / -da啟用/禁用斷言
-Dkey=value設置系統屬性,程式中 System.getProperty("key") 獲取
-verbose:class輸出類加載資訊
-version / -showversion顯示 JVM 版本

3. 完整工作流程示例

# 目錄結構
src/com/example/Main.java
# 編譯到 out 目錄
javac -d out -encoding UTF-8 src/com/example/Main.java
# 執行
java -cp out com.example.Main arg1 arg2

4. 常見錯誤與排查

  1. 找不到或無法加載主類:類名拼寫錯誤、缺少包名、-cp 路徑錯誤、文件名與類名不一致。
  2. UnsupportedClassVersionError:編譯版本高於運行版本(如 JDK 17 編譯,JDK 11 運行),用 -target/--release 降級或升級運行環境。
  3. 中文亂碼:編譯加 -encoding UTF-8,運行確保終端編碼一致。
  4. NoClassDefFoundError:編譯時存在,運行時缺失依賴,檢查 -cp 或 JAR 完整性。

5. 進階:模塊化(JDK 9+)

模塊項目需使用 --module-source-path、--module-path、-m 模塊/主類,不再依賴傳統 -cp。

總結

熟練掌握 javac/java 參數,能快速定位構建與部署問題,也是理解 Maven/Gradle 等構建工具底層原理的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved