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

Java 命令行工具實戰指南:javac 與 java 完整用法

     編輯:Java 相關知識

無 Package 類別

// Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}

編譯:javac Hello.java → 產生 Hello.class

執行:java Hello(在 .class 同目錄下)

帶 Package 類別

// 目錄結構:c:/Java/hello/my/Hello.java
package my;
public class Hello {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}

編譯:在 c:/Java/hello 目錄下執行 javac my/Hello.java

執行:在 c:/Java/hello 目錄下執行 java my.Hello

關鍵規則:源檔必須置於對應包目錄下;編譯時路徑相對「包根目錄」;執行時使用全限定類名。

第三方 JAR 引用(-classpath / -cp)

# 編譯
javac -cp .;lib/foo.jar;lib/bar.jar MyClass.java

# 執行
java -cp .;lib/foo.jar;lib/bar.jar com.example.MyClass
  • . 代表當前目錄(含無包類別)。
  • Windows 用 ; 分隔,Linux/macOS 用 :。
  • JAR 檔需指定完整檔名,目錄只能載入非 JAR 的類別檔。

常見錯誤與排查

錯誤現象可能原因解決方向
Could not find or load main class類名錯誤、classpath 缺少包根目錄、包名與目錄不符檢查全限定名、確認 -cp 包含包根、目錄結構匹配包名
NoClassDefFoundError編譯時有但運行時缺少依賴 JAR運行時 -cp 加入該 JAR
ClassNotFoundException反射/類載入器動態載入失敗確認類在 classpath 中,注意類載入器層級

進階技巧

  • 模組化專案(Java 9+):改用 --module-path、-m module/class。
  • 編碼指定:javac -encoding UTF-8 ... 避免中文亂碼。
  • 編譯輸出目錄:javac -d out src/com/example/*.java 將 .class 輸出至 out 目錄,保持源碼整潔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved