Java編譯和執行的命令

青城山下写代码1010發表於2024-08-02

1.3 Java編譯和執行的命令


目錄
  • 1.3 Java編譯和執行的命令
    • 1.3.1 Java編譯和執行的基礎概念
    • 1.3.2 基本步驟
      • 1. 編譯Java程式碼
      • 2. 執行編譯後的程式碼
    • 1.3.3 詳細解釋
    • 1.3.4 常見問題
    • 1.3.5 常用Java命令
      • javac
      • java
      • jar


1.3.1 Java編譯和執行的基礎概念

  1. 原始碼檔案(.java)

    • 這是你寫的Java程式碼,副檔名是.java
  2. 位元組碼檔案(.class)

    • 這是經過編譯後的檔案,Java虛擬機器(JVM)可以理解和執行的程式碼,副檔名是.class

1.3.2 基本步驟

1. 編譯Java程式碼

編譯的意思是把你寫的原始碼轉換成JVM可以理解的位元組碼。使用javac命令來完成這個步驟。

  • 假設你有一個檔案叫HelloWorld.java,裡面寫著:

    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, World!");
        }
    }
    
  • 要編譯這個檔案,你需要在命令列(或終端)中輸入:

    javac HelloWorld.java
    

    執行完這條命令後,目錄中會生成一個HelloWorld.class檔案。

2. 執行編譯後的程式碼

執行的意思是讓JVM執行編譯好的位元組碼。使用java命令來完成這個步驟。

  • 繼續上面的例子,編譯之後,我們得到了HelloWorld.class檔案。

  • 現在,在命令列中輸入:

    java HelloWorld
    

    這時,螢幕上會顯示:

    Hello, World!
    

1.3.3 詳細解釋

  • javac HelloWorld.java

    • javac是Java編譯器,它讀取你寫的Java原始碼並檢查語法錯誤。如果一切正常,它會生成一個或多個.class檔案。
    • HelloWorld.java是你要編譯的原始檔。
  • java HelloWorld

    • java是Java的執行時命令,它啟動JVM並執行指定的位元組碼。
    • HelloWorld是你要執行的類的名字,不需要加.class

1.3.4 常見問題

  1. 檔名和類名必須一致
  • 在Java中,公共類的名字必須和檔名一致。例如,如果類名是HelloWorld,檔名必須是HelloWorld.java
  1. 編譯錯誤
  • 如果在編譯過程中出現錯誤,javac會告訴你在哪行程式碼有問題以及是什麼問題。你需要修正錯誤,然後重新編譯。
  1. 類路徑(classpath)

    • 有時,你的程式需要用到其他的庫或類檔案。你可以使用-cp選項來指定這些庫或類檔案的位置。例如:

      javac -cp someLibrary.jar HelloWorld.java
      java -cp someLibrary.jar:. HelloWorld
      

1.3.5 常用Java命令

  • javac

javac命令用於將Java原始碼編譯成Java位元組碼檔案(.class檔案),以便在Java虛擬機器(JVM)上執行。

基本語法

javac [options] source_file(s)

使用示例

javac HelloWorld.java

引數說明

  • options:javac命令提供了多個選項來控制編譯過程和生成的位元組碼檔案的行為。可以使用javac -help檢視所有選項及其說明。

  • source_file(s):指定要編譯的原始碼檔案的路徑。可以使用萬用字元(*)來編譯整個資料夾中的所有Java檔案。例如,javac *.java會同時編譯當前目錄中的所有Java檔案。

常見選項

  • -d directory:指定編譯生成的.class檔案的輸出目錄。

  • -classpath path:指定可供編譯器使用的類路徑。

  • -source version:指定要編譯的Java原始碼的版本(例如,-source 8表示使用Java 8的語言功能進行編譯)。

  • -target version:指定要生成的位元組碼檔案的Java版本(例如,-target 1.8表示要生成適用於Java 8的位元組碼檔案)。

  • -Xlint:啟用編譯器警告訊息。

  • -verbose:顯示編譯器的詳細輸出資訊。

javac命令是編寫和編譯Java程式碼的必備工具之一。掌握其用法可以幫助開發人員更好地進行Java開發和除錯。

  • java

java命令用於啟動Java虛擬機器並執行Java程式。使用java命令可以在命令列中直接執行編譯後的Java程式。

基本語法

java [options] class [args...]

使用示例

java HelloWorld

引數說明

  • options:Java命令提供了多個選項來控制Java虛擬機器和應用程式的行為。可以使用java -help檢視所有選項及其說明。

  • class:要執行的Java類名。

  • args…:傳遞給主方法的引數。這些引數將作為字串陣列傳遞給main()方法。

常見選項

  • -classpath path:指定Java虛擬機器應該搜尋類檔案的路徑。與javac編譯器選項-cp相同。

  • -Xmx size:指定堆大小的最大值,以位元組為單位。例如,-Xmx1024m表示堆大小的最大值為1024 MB。

  • -Xms size:指定初始堆大小,以位元組為單位。

  • -version:檢視Java版本資訊。

  • -jar file:執行指定的JAR檔案。

  • -Dproperty=value:設定系統屬性。例如,-Djava.awt.headless=true表示啟用無頭模式。

java命令是Java開發和除錯的重要工具之一。熟練掌握其用法可以幫助開發人員更好地編寫和執行Java程式。

  • jar

jar命令用於建立和管理JAR格式的歸檔檔案,也可以用於解壓縮包和對JAR檔案進行簽名等操作。

基本語法

jar [options] archive_file file(s)

使用示例

jar cf myJar.jar *.class

引數說明

  • options:jar命令提供了多個選項來控制生成的JAR檔案的內容和行為。可以使用jar -help檢視所有選項及其說明。

  • archive_file:生成的JAR檔案的名稱。

  • file(s):需要新增到JAR檔案中的檔案或目錄列表。

常見選項

  • c:表示新建一個JAR檔案。

  • f:指定JAR檔案的檔名以及可選路徑

  • v:輸出生成過程中處理的檔案列表。

  • m:表示需要保留manifest檔案。

  • x:從JAR檔案中提取指定的檔案。

  • t:列出JAR檔案中儲存的檔案。

  • u: 更新現有的JAR檔案中的檔案。

  • i:為已有的JAR檔案建立索引檔案

使用jar命令還可以對JAR檔案進行簽名,以提高應用程式的安全性,防止被篡改。此外,在釋出Java程式時,將程式碼打包成一個JAR檔案也是很常見的做法,以便簡化部署和分發過程。

jar命令是Java開發和部署的重要工具之一。熟練掌握其用法可以幫助開發人員更好地管理JAR檔案和Java程式的部署。

相關文章