[老白學 java] - 工欲善其事,必先利其器
最近很閒,於是我瞄上了 Java。 女兒苦苦勸我趁早放棄... 最終她放棄了,卻徹底激發了我的學習熱情! 本著「不撞南牆撞北牆」的無畏精神,重新裝備上我的老搭檔 "SONY FZ-15",毅然決然的開啟了 Java 修煉之旅。
鄭重宣告:本人新入坑的老白,如果文中有不規範的用詞,懇請您狠狠地提出!
JDK、JRE 和 JVM 都是啥?
做了一小時功課,大致瞭解了 Java 程式是如何執行的。 我把這個過程分為四步:
- 使用文字編輯器編寫 .java 原始檔;
- JDK(Java Development Kit)編譯原始碼,生成 .class 位元組碼檔案;
- JRE(Java Runtime Environment)提供核心類庫輔助 JVM;
- JVM(Java Virtual Machine)負責解釋、執行位元組碼。
解釋一下這幾個專有名詞:
- JDK - Java 語言開發工具包,它是 Java 程式開發的核心部分,其中包含了 JRE。
- JRE - Java 執行環境,提供了執行程式所需的全部元件,包括 JVM、核心類庫以及支援檔案。
- JVM - Java 虛擬機器,一個微型作業系統,有自己的指令集,負責解釋、執行 .class 位元組碼檔案。
理順相互關係後,開始著手搭建開發環境。 第一步先下載 JDK。
下載、安裝 JDK
- 官網下載:https://www.oracle.com/
參照以下步驟從官網下載適合你的 JDK,或者去正規網站直接下載。
- 下載結束後,雙擊檔案開始安裝 JDK
配置 JDK
JDK 安裝完成後,還不能立即使用。 如果開啟 JDK 安裝目錄中的 bin 資料夾,可以找到 javac.exe、java.exe 這樣的應用,這是 Java 開發中的兩個重要工具,用於編譯和執行 Java 程式。 bin 資料夾還提供了諸如除錯、打包等許多其它開發工具,為了讓 Windows 可以順利找到它們,需要提前配置路徑。
滑鼠右鍵桌面計算機圖示,選擇屬性->高階系統設定,顯示系統屬性皮膚:
點選環境變數按鈕,顯示環境變數皮膚:
環境變數皮膚中可以配置兩種變數,使用者變數和系統變數。 區別在於使用者變數針對當前登入使用者生效,而系統變數針對所有使用者生效。 新建按鈕可以建立一個新變數,編輯按鈕可以修改已經存在的變數,刪除按鈕可以刪除一個變數(請謹慎操作)。 接下來分別對三個系統變數進行配置:
- 新建->變數名: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 元件路徑(注意前面的分號)。
測試開發環境
是時候檢驗自己的勞動成果了! 啟動 CMD(命令列視窗),輸入 java -version
:
如果出現了類似資訊,說明開發環境配置正確。 我們試著寫個小程式測試一下,先向世界打個招呼吧!
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
編譯原始檔:
編譯成功後,CMD 不會給出任何提示,不過返回桌面會發現多出了一個 MyFirstApp.clss 檔案,這就是剛剛編譯生成的位元組碼檔案。
試著使用 java
命令執行程式:
可以看到我在上面共執行了兩次 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
命令選項即可正常顯示中字。