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編譯和執行的基礎概念
-
原始碼檔案(.java):
- 這是你寫的Java程式碼,副檔名是
.java
。
- 這是你寫的Java程式碼,副檔名是
-
位元組碼檔案(.class):
- 這是經過編譯後的檔案,Java虛擬機器(JVM)可以理解和執行的程式碼,副檔名是
.class
。
- 這是經過編譯後的檔案,Java虛擬機器(JVM)可以理解和執行的程式碼,副檔名是
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 常見問題
- 檔名和類名必須一致:
- 在Java中,公共類的名字必須和檔名一致。例如,如果類名是
HelloWorld
,檔名必須是HelloWorld.java
。
- 編譯錯誤:
- 如果在編譯過程中出現錯誤,
javac
會告訴你在哪行程式碼有問題以及是什麼問題。你需要修正錯誤,然後重新編譯。
-
類路徑(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程式的部署。