# Java 安裝教學 (JDK/JRE 19 + Eclipse) [含 JavaFX 安裝] Java 程式的開發需要同時安裝 JRE (Java Runtime Environment,Java 執行環境) 與 JDK (Java Development Kit,Java 開發工具包)。前者 JRE 代表 Java 的執行環境,只要是以 Java 語言開發的應用程式,都需要安裝 JRE,這樣 Java 才可以執行;而後者 JDK 則是 Java 的開發套件,如果是作為開發者需要撰寫 Java 程式,那就必須在電腦中安裝 JDK 並設定好環境變數,Windows 才可順利編譯我們所撰寫的 Java 程式。 本文教學所安裝的 JDK/JRE 版本為 19.0.2,並以 Eclipse 來進行程式開發,請同學的環境建立以 Java 19 為主 (Windows 10/11)。 <font color = "red">**開始前請於此[連結](https://drive.google.com/drive/folders/1ciHCJk3KNhN55J4yDMFq6CONRcnWldcU?usp=drive_link)中下載相關執行檔。**</font> <br/> ## I. 確認是否曾經安裝過 Java 環境 ##### Step 1 以系統管理員身份開啟命令提示字元 <img src="https://hackmd.io/_uploads/HkMe2513a.png" align = "left" style="zoom: 80%;" /> <br/> <br/> ##### Step 2 輸入以下命令,檢查電腦中是否已存在 JDK 或 JRE 的安裝 ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/Bkrq3c13T.png" align = "left" style="zoom:80%;" /> 如上圖,有出現版本號則代表原電腦中已安裝過 Java,請卸載後再開始安裝 Java 19。 若沒有出現版本號(如下圖),則直接跳到第 III 步進行 JDK 的安裝與設定。 <img src="https://hackmd.io/_uploads/Hy_rA9y2p.png" style="zoom:80%;" align = "left" /> <br/> <br/> <br/> <br/> ## II. 卸載已安裝過的 Java ##### Step 1 點擊 Java Uninstall Tool 並以系統管理員身份執行它 (點選並執行之前要先把其他所有應用程式及瀏覽器等全部關掉)。 <img src="https://hackmd.io/_uploads/rJc325k2p.png" align = "left" style="zoom:80%;" /> <br/> <br/> ##### Step 2 點選同意。 <img src="https://hackmd.io/_uploads/r1d1pq1na.png" style="zoom:80%;" align = "left" /> <br/> <br/> ##### Step 3 卸載成功後請點選 "關閉"。 <img src="https://hackmd.io/_uploads/BJYET9y2p.png" style="zoom:65%;" align = "left" /> <br/> <br/> ##### Step 4 重新開啟命令提示字元,再次輸入以下命令,檢查電腦中是否已存在 JDK 或 JRE 的安裝 ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/ByJKa9y2T.png" align = "left" style="zoom:80%;" /> *若是仍存在其他版本的 Java,請繼續往下解除相關安裝。* <br/> ##### Step 5 於終端機中輸入以下命令,查詢目前有安裝 Java 的應用程式。 ```cmd where java ``` <img src="https://hackmd.io/_uploads/rJRqT5k2a.png" style="zoom:80%;" align = "left" /> 如上圖所示,目前有使用到 Java 的應用程式為 RedHat。 <br/> ##### Step 6 進入控制台,點選解除安裝程式,選擇該應用程式並解除安裝。 <img src="https://hackmd.io/_uploads/ryGpa5k2p.png" style="zoom:80%;" align = "left"/> <img src="https://hackmd.io/_uploads/B1WkC9Jh6.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 7 重新開啟命令提示字元,再次輸入以下命令,檢查電腦中是否已存在 JDK 或 JRE 的安裝 ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/rkrg0ck3T.png" style="zoom:80%;" align = "left"/> 如上圖所示,此時電腦中的 JDK 與 JRE 均已卸載成功。 <br/> <br/> ## III. 安裝 JDK/JRE 19 *Mac 請參考以下連結: https://blog.csdn.net/weixin_61536532/article/details/126791735* 在開始安裝前,請先確保電腦內並未安裝任何版本的 JDK/JRE: ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/rkKWC5Jha.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 1 下載 JDK/JRE 安裝檔,點選並以系統管理員身份執行。 <img src="https://hackmd.io/_uploads/rkGvCcyn6.png" align = "left" style="zoom:80%;" /> <br/> <br/> ##### Step 2 點選 "Next" 執行下一步。 <img src="https://hackmd.io/_uploads/rkGORc1np.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 3 **請勿變更預設的安裝路徑。<font color = "red">(請把這段安裝路徑記錄下來,等下環境變數設定時會用到)</font>** <img src="https://hackmd.io/_uploads/SkNc09y3T.png" style="zoom:80%;" align = "left" /> <br/> <br/> ##### Step 4 完成安裝,關閉安裝程式視窗。 <img src="https://hackmd.io/_uploads/r11NJokna.png" style="zoom:80%;" align = "left" /> <br/> <br/> <br/> ## IV. 於 Windows 系統設定環境變數 ##### Step 1 按下鍵盤中的 "Win + R",開啟 "執行" 對話框,輸入 ```sysdm.cpl```,點選 "確定" 以開啟系統內容視窗。 <img src="https://hackmd.io/_uploads/rkmbgo1hp.png" style="zoom:80%;" align = "left" /> <br/> <br/> ##### Step 2 在系統內容視窗中,於 "進階" 頁面中選擇 "環境變數"。 <img src="https://hackmd.io/_uploads/r1eGgsk2a.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 3 在 "系統變數" 區域中,點選 "新增" 來新增一筆系統變數。 <img src="https://hackmd.io/_uploads/HJ1Qlsy3T.png" style="zoom:80%;" align = "left"/> <br/> <br/> 如下圖所示,請在變數名稱欄位中輸入```JAVA_HOME```,而變數值欄位則填入剛剛 JDK/JRE 19 的安裝路徑 ([步驟 III 中 Step 3](#Step-31) 記錄下的那個)。 <img src="https://hackmd.io/_uploads/SkmNxskna.png" align = "left" /> <br/> <br/> 如下圖所示,可以看到 ```JAVA_HOME``` 變數新建成功。 <img src="https://hackmd.io/_uploads/ryrrli13a.png" align = "left" style="zoom:80%;" /> <br/> <br/> ##### Step 4 在 "系統變數" 區域中,找到名為 "Path" 的系統變數,點選 "編輯" 來編輯該系統變數。 <img src="https://hackmd.io/_uploads/SJePgiy3a.png" style="zoom:80%;" align = "left" /> <br/> <br/> 如下圖所示,點選 "新增" 按鍵,輸入 ```%JAVA_HOME%\bin```,按下確定後儲存變更。 <img src="https://hackmd.io/_uploads/HJ-dxsk26.png" style="zoom:80%;" align = "left" /> <br/> <br/> 最後於環境變數頁面中按下 "確定" 鍵儲存變更。 <img src="https://hackmd.io/_uploads/SkkYesyh6.png" style="zoom:80%;" align = "left" /> <br/> <br/> ##### Step 4 重新開啟命令提示字元,於終端機中輸入以下命令,確認 JDK 19 是否安裝成功。(請確認版本號為 19.0.2) ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/ryn5lok2p.png" style="zoom:80%;" align = "left"/> <br/> <br/> <br/> ## V. 安裝 Eclipse *Mac 請參考以下連結: https://blog.csdn.net/weixin_43847458/article/details/123213669* 在開始安裝前,請先確保電腦內已安裝 JDK/JRE 19: ```cmd java -version javac -version ``` <img src="https://hackmd.io/_uploads/ByBpxoyha.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 1 點擊 Eclipse 安裝檔,以系統管理員身份執行。 <img src="https://hackmd.io/_uploads/r1YCxsJnT.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 2 點選 "Eclipse IDE for Java Developers"。 <img src="https://hackmd.io/_uploads/B1iJ-s1hp.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 3 請確保 Java 版本為 JDK 19,其他路徑請勿更改,點選 "Install"。 <img src="https://hackmd.io/_uploads/SJlWZik2p.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 4 點選同意。 <img src="https://hackmd.io/_uploads/rkyGWj1na.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 5 完成安裝,執行 Eclipse IDE。 <img src="https://hackmd.io/_uploads/H13fZjyha.png" style="zoom:80%;" align = "left"/> <br/> <br/> <br/> ## VI. 開始使用 Eclipse IDE ##### Step 1 首次開啟 Eclipse 時,會跳出一個視窗要選擇 workspace 目錄的位置,這個目錄主要是用來儲存未來所撰寫的所有 Java 專案,同學可自行改變位置,或新建一個資料夾用來放 Java 檔案(資料夾名稱盡量以英文命名)。 <img src="https://hackmd.io/_uploads/Syv4-sy2p.png" style="zoom:80%;" align = "left"/> 勾選 "Use this as the default and do not ask again" 後,下次開啟時 Eclipse 就不會再詢問 workspace 位置了。 <br/> ##### Step 2 關掉歡迎頁面。 <img src="https://hackmd.io/_uploads/ByUw-jk3T.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 3 新增一個 Java 專案。 <img src="https://hackmd.io/_uploads/ByKY-iknT.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 4 輸入專案名稱,選擇 Java 版本 (若只是單純寫程式而非進行專案開發的話,以後多數的 Java 檔案均存在本專案內即可)。 <img src="https://hackmd.io/_uploads/ByicZiJ3a.png" style="zoom:80%;" align = "left"/> <br/> <br/> 如下圖所示,專案建立完成後,底下會有兩個資料夾,其中 JRE System Library 中存放的是 JDK 19 的開發套件,而 src 中則是存放所有的 Java 檔案。 <img src="https://hackmd.io/_uploads/Byto-oJh6.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 5 右鍵點選專案名稱,新建一個 Java class (**若只是單純寫程式而非進行專案開發的話,以後建檔的時候從這個步驟開始即可**)。 <img src="https://hackmd.io/_uploads/HkHxzs13T.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 6 命名並建立該 class,其中 Package name 請依照作業類型統一命名為 `assignment`。 <img src="https://hackmd.io/_uploads/rkIIX7m2p.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 7 撰寫程式碼進行測試。 ```java package assignment; // package 名稱必須與剛剛建立的 package 檔名相同,請依照作業類別統一命名為 assignment /* * Assignment 00 * Name: 王小明 * Student Number: 123456789 * Course 2023-課程代碼-班級 */ public class HelloWorld { // class 名稱必須與剛剛建立的 class 檔名相同 public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello world!"); } } ``` 請注意,程式碼中的 class 名稱必須與剛剛建立的 class 檔名相同,而 package 名稱也必須相同。(預設會直接建立好) 另外,註解處的班級請寫上自己的班級 (如資工 1A),<font color="red">**不是寫上實習課的 A/B 班**</font>。 <br/> ##### Step 7 儲存並執行檔案。 <img src="https://hackmd.io/_uploads/rJNQzsyha.png" style="zoom:80%;" align = "left"/> <br/> <br/> <img src="https://hackmd.io/_uploads/HJYMms12p.png" align = "left"/> <br/> <br/> ##### Step 8 成功執行檔案並印出 `Hello World`。 <img src="https://hackmd.io/_uploads/SyoEzsJha.png" style="zoom:80%;" align = "left"/> <br/> <br/> <br/> ## VII. `.java` 檔與 `.class` 檔的位置 ##### Step 1 進入 Eclipse workspace 路徑 ([步驟 VI 中的 Step 1](#Step-15)) 後,進入專案資料夾 ([步驟 VI 中的 Step 4](#Step-45)) 內。 <img src="https://hackmd.io/_uploads/r1THzj1nT.png" style="zoom:80%;" align = "left"/> <br/> <br/> ##### Step 2 - 在專案內,`\bin\{package_name}\`中存放的是`.class`檔 <img src="https://hackmd.io/_uploads/rJh8fsk2a.png" style="zoom:80%;" align = "left"/> <br/> - 在專案內,`\src\{package_name}\`中存放的是`.java`檔 <img src="https://hackmd.io/_uploads/ry4tMoknT.png" style="zoom:80%;" align = "left"/> <br/> <font color = "red">**未來繳交作業請上傳 `.java`檔即可,上傳其他多餘檔案者將予以扣分。**</font> ## VIII. 編碼查看 請確認程式碼是以 utf-8 編碼: 進入 Windows -> Preference ![img04](https://hackmd.io/_uploads/Hy6khOb0T.png) 進入 General -> Workspace,確認編碼狀態為 utf-8 ![img05](https://hackmd.io/_uploads/BkGvnubCa.png) # 使用 JavaAWT ## I. 設定 module info 進入當前 package 底下的 `module-info.java` ![image](https://hackmd.io/_uploads/Sy-Rr84r0.png) 於 module 底下新增一行 `requires java.desktop;` ![image](https://hackmd.io/_uploads/HJu-IINBR.png) ## II. 執行 Java AWT 設定完畢後即可使用 Java AWT。 # 安裝 JavaFX ## I. 下載 JavaFX package ##### Step 1 進入 [JavaFX 官網](https://gluonhq.com/products/javafx/),選擇下方版本並下載 ![01](https://hackmd.io/_uploads/H1n5wOw-C.png) ##### Step 2 解壓縮該文件,將資料夾放到合適的檔案位置(之後請勿移動該資料夾位置) ![image](https://hackmd.io/_uploads/rk27FdPWC.png) ## II. 於 Eclipse 中安裝 JavaFX ##### Step 1 開啟 User Library 開啟 Eclipse,選擇 Window -> Preference ![02](https://hackmd.io/_uploads/HkLrcOwbC.png) 選擇 Java -> Build Path -> User Libraries -> New ![04](https://hackmd.io/_uploads/BkN1i_DWR.png) ##### Step 2 自訂 User Library 輸入 Library 名稱:名稱可自訂 ![image](https://hackmd.io/_uploads/S1ojsOvWR.png) 選取剛剛新增的 Library,點選 Add External JAR Selection ![05](https://hackmd.io/_uploads/ByxXnuvWR.png) 進入剛剛的 javafx-sdk-22.0.1/lib 裡面,全選所有檔案並匯入 ![image](https://hackmd.io/_uploads/HJ8L3uvbR.png) ![image](https://hackmd.io/_uploads/SJbc3OwbC.png) 點選 Apply and Close ## III. 安裝 Eclipse 插件 ##### Step 1 點選 Help -> Eclipse Marketplace ![06](https://hackmd.io/_uploads/HJ1mpuwWC.png) 於搜尋框中輸入 `JavaFX`,點選下方插件進行安裝 ![07](https://hackmd.io/_uploads/HkHtpuw-R.png) 點選同意,並按下 Finish ![image](https://hackmd.io/_uploads/rJgI-0_wZC.png) 安裝成功後,重新啟動 Eclipse ![image](https://hackmd.io/_uploads/rkO6bFwZR.png) ##### Step 2 進入 Window -> Preferences -> JavaFX 點選 Browse,去找 javafx-sdk-22.0.1 的位置 ![09](https://hackmd.io/_uploads/B1s_GFPW0.png) ## III. 建立 project ##### Step 1 新建一個 Java Project ![10](https://hackmd.io/_uploads/Sk6bmtvWA.png) ![image](https://hackmd.io/_uploads/H13XQFP-C.png) ##### Step 2 新建一個 Java class ![11](https://hackmd.io/_uploads/By9nXFDbA.png) 於該 Java class 中寫上以下測試用程式碼 ```java package assignment; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; public class HelloJavaFX extends Application { @Override // Override the start method in the Application class public void start(Stage primaryStage) { // Create a button and place it in the scene Button btOK = new Button("OK"); Scene scene = new Scene(btOK, 200, 250); primaryStage.setTitle("MyJavaFX"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage } /** * The main method is only needed for the IDE with limited * JavaFX support. Not needed for running from the command line. **/ public static void main(String[] args) { launch(args); } } ``` 其中,package 名稱與 class 名稱請根據不同檔案而調整。 ![image](https://hackmd.io/_uploads/BJqgBFvZ0.png) 程式碼剛貼上時會有各種報錯。 ## IV. 設定 project 環境 ##### Step 1 建立 project 環境 對 project 右鍵,選取 Build Path -> Add Libraries ![12](https://hackmd.io/_uploads/rJK-LtPZ0.png) 選取 User Library ![image](https://hackmd.io/_uploads/SkUEUFDbR.png) 點選剛剛建好的 JavaFX22 ![image](https://hackmd.io/_uploads/HkCB8YwWC.png) JavaFX Library 成功匯入 ![13](https://hackmd.io/_uploads/SJiYIFDbR.png) ##### Step 2 環境設定 * 作法一:針對整個 Eclipse 環境設定參數 (Eclipse 上所有環境會被設定為僅適用於 JavaFX 的環境,所有非 JavaFX 檔案無法執行) - 進入 Window -> Preference ![14](https://hackmd.io/_uploads/rJASvKPWR.png) - 編輯 VM Argument ![15](https://hackmd.io/_uploads/Hk7ovtD-R.png) - 填入以下參數 ``` --module-path "C:\Program Files (x86)\Java\javafx-sdk-22.0.1\lib" --add-modules javafx.controls,javafx.fxml ``` 其中,"C:\Program Files (x86)\Java\javafx-sdk-22.0.1\lib"的部分請填入剛剛放 javafx-sdk-22.0.1\lib 的路徑 ![16](https://hackmd.io/_uploads/HkyyKKvWC.png) * 作法二:針對單一 Java 檔設定參數 (每個 JavaFX 檔案都必須重新做一次這個設定,但原先的非 JavaFX 檔案仍可以執行) - 執行 JavaFX 檔案 (一定要先執行一次產生錯誤訊息的檔案才行) ![01](https://hackmd.io/_uploads/SJ_icucbR.png) ![02](https://hackmd.io/_uploads/rkkQj_qbR.png) 會產生以上 Error Message - 設定參數 進入 Run Configuration ![03](https://hackmd.io/_uploads/BJZ0jO5ZR.png) 在 Arguments 中填入以下參數後,執行該程式碼 ``` --module-path "C:\Program Files (x86)\Java\javafx-sdk-22.0.1\lib" --add-modules javafx.controls,javafx.fxml,javafx.media ``` 其中,"C:\Program Files (x86)\Java\javafx-sdk-22.0.1\lib"的部分請填入剛剛放 javafx-sdk-22.0.1\lib 的路徑 ![04](https://hackmd.io/_uploads/rkTE3_9bA.png) ![image](https://hackmd.io/_uploads/HJhF3u5-A.png) 可成功執行 ## V. 執行範例程式碼 執行前必須先刪除原先建立專案時自動建成的 project-info.java ![image](https://hackmd.io/_uploads/r1quttw-C.png) 成功執行結果 ![image](https://hackmd.io/_uploads/H1i5tYPZC.png)