老白學 Java - 工欲善其事,必先利其器

码老白發表於2024-10-26

[老白學 java] - 工欲善其事,必先利其器

image

最近很閒,於是我瞄上了 Java。 女兒苦苦勸我趁早放棄... 最終她放棄了,卻徹底激發了我的學習熱情! 本著「不撞南牆撞北牆」的無畏精神,重新裝備上我的老搭檔 "SONY FZ-15",毅然決然的開啟了 Java 修煉之旅。

鄭重宣告:本人新入坑的老白,如果文中有不規範的用詞,懇請您狠狠地提出!

JDK、JRE 和 JVM 都是啥?

做了一小時功課,大致瞭解了 Java 程式是如何執行的。 我把這個過程分為四步:

  1. 使用文字編輯器編寫 .java 原始檔;
  2. JDK(Java Development Kit)編譯原始碼,生成 .class 位元組碼檔案;
  3. JRE(Java Runtime Environment)提供核心類庫輔助 JVM;
  4. JVM(Java Virtual Machine)負責解釋、執行位元組碼。

解釋一下這幾個專有名詞:

  • JDK - Java 語言開發工具包,它是 Java 程式開發的核心部分,其中包含了 JRE。
  • JRE - Java 執行環境,提供了執行程式所需的全部元件,包括 JVM、核心類庫以及支援檔案。
  • JVM - Java 虛擬機器,一個微型作業系統,有自己的指令集,負責解釋、執行 .class 位元組碼檔案。

理順相互關係後,開始著手搭建開發環境。 第一步先下載 JDK。

下載、安裝 JDK

  1. 官網下載:https://www.oracle.com/
    參照以下步驟從官網下載適合你的 JDK,或者去正規網站直接下載。

image
image
image
image
image

  1. 下載結束後,雙擊檔案開始安裝 JDK

image
image
image
image
image
image
image
image

配置 JDK

JDK 安裝完成後,還不能立即使用。 如果開啟 JDK 安裝目錄中的 bin 資料夾,可以找到 javac.exe、java.exe 這樣的應用,這是 Java 開發中的兩個重要工具,用於編譯和執行 Java 程式。 bin 資料夾還提供了諸如除錯、打包等許多其它開發工具,為了讓 Windows 可以順利找到它們,需要提前配置路徑。

滑鼠右鍵桌面計算機圖示,選擇屬性->高階系統設定,顯示系統屬性皮膚:

image

點選環境變數按鈕,顯示環境變數皮膚:

image

環境變數皮膚中可以配置兩種變數,使用者變數系統變數。 區別在於使用者變數針對當前登入使用者生效,而系統變數針對所有使用者生效。 新建按鈕可以建立一個新變數,編輯按鈕可以修改已經存在的變數,刪除按鈕可以刪除一個變數(請謹慎操作)。 接下來分別對三個系統變數進行配置:

  • 新建->變數名:JAVA_HOME,變數值 D:\Java\jdk-9,用於設定 JDK 根路徑;
  • 新建->變數名:CLASSPATH,變數值 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,用於設定 Java 基礎類庫路徑(注意前面的點和分號);
  • 編輯->變數名:Path,在原有變數值後面加入新值 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,用於設定 JDK 開發工具包和 JVM 元件路徑(注意前面的分號)。

image
image
image

測試開發環境

是時候檢驗自己的勞動成果了! 啟動 CMD(命令列視窗),輸入 java -version
image

如果出現了類似資訊,說明開發環境配置正確。 我們試著寫個小程式測試一下,先向世界打個招呼吧!

public class MyFirstApp {
	public static void main (String[] args) {
		System.out.println("你好,Java");
	}
}

桌面上新建一個名為 MyFirstApp 的 txt 檔案,輸入以上內容。 檢查無誤後,檔案另存為 MyFirstApp.java。 這時桌面上應該有兩個同名的 MyFirstApp 檔案,分別是 .txt 檔案和 .java 檔案,後者就是我們接下來要編譯的原始檔。

注意,當前使用的是 Windows 自帶的筆記本應用,沒有語法檢查功能,而 Java 對大小寫敏感,小心輸入不要拼錯單詞。 為了便於日後編寫程式碼,建議下載專業的程式碼編輯器,比如 Visual Studio Code、Sublim Text 等都很不錯,具備完善的語法提示、語法高亮等功能,而且輕快好用。

好了繼續,先 cd 到 Desktop 桌面目錄,然後使用 javac 編譯原始檔:
image

編譯成功後,CMD 不會給出任何提示,不過返回桌面會發現多出了一個 MyFirstApp.clss 檔案,這就是剛剛編譯生成的位元組碼檔案。

試著使用 java 命令執行程式:
image

可以看到我在上面共執行了兩次 java 命令,第一次沒有正常顯示中字,而第二次加入命令選項 -Dfile.encoding=utf-8 後可以正常顯示了。 這是因為 Windows 自帶的筆記本應用和 CMD 編碼格式不同所致。

OK,全部搞定! 暫時放緩一下心情,愉快地玩耍吧!

補充:可能會出現的問題

1、使用 javac 命令,顯示'javac'不是內部或外部命令...

可能沒有安裝 JDK 開發工具或者環境變數配置錯誤,請重新檢查你的配置然後再試。

2、無法另存為 "MyFirstApp.java" 格式的原始檔

可能是 Windows 隱藏了副檔名,所以看到了一個"假"名字,實際檔名可能是 "MyFirstApp.java.txt",仍然是一個 txt 格式的文字檔案! 解決的方法很簡單,滑鼠點選資源瀏覽器選單中的工具->資料夾選項->檢視,去掉隱藏已知檔案型別的副檔名核取方塊的對勾,然後確定。 重新檢查檔案,另存為正確格式就可以正常編譯了。

3、控制檯程式中文顯示亂碼

上文已經提到類似問題,Windows 筆記本應用的字元編碼格式與命令列視窗的編碼格式不一致,導致命令列視窗無法正確解析。 解決的方法就是每次執行 java 命令時,加入 -Dfile.encoding=utf-8 命令選項即可正常顯示中字。

相關文章