[Java] 環境建置 & 簡介
本機 Java 環境配置
下載 JDK
撰寫 Java 會需要安裝 JDK (Java Development Kit),一個能讓開發者在本機撰寫、編譯、執行 Java 程式的工具包。
撰寫本文的當下 (2025/09/21),JDK 的最新 LTS 為 25 版,可以直接由下列連結下載:
目前 25 沒有提供 .msi
的安裝檔,所以沒辦法無腦一鍵執行安裝並自動設定環境變數。
所以只能載 .zip
壓縮檔,解壓縮至想放的路徑 (例如 C:\Java\jdk-25
),然後手動設定環境變數。
解壓縮放置路徑以我個人的話,會選擇跟我其它程式語言或環境的 SDK 放在一起,比如我的 node 就是放在 C:\nvm4w\nodejs
,那麼 jdk 我就會放在 C:\Java\jdk-25
。
那因為是使用 .zip
壓縮檔,所以不會自動幫你設定環境變數,需要手動設定。
打開 cmd,並執行下述指令 (記得以管理員身份執行 cmd):
- 設定 JAVA_HOME 系統變數
setx JAVA_HOME "C:\Java\jdk-25" /M
- 設定 Path 系統變數
setx PATH "%JAVA_HOME%\bin;%PATH%" /M
接下來關閉 cmd 視窗,重新打開一個新的 cmd 視窗,執行 java -version
指令,若能看到版本資訊,代表安裝成功。
C:\Users\User>java -version
openjdk version "25" 2025-09-16
OpenJDK Runtime Environment (build 25+36-3489)
OpenJDK 64-Bit Server VM (build 25+36-3489, mixed mode, sharing)
VScode Java 開發環境配置
VScode 現在寫 Java 已經比過去方便很多了,只要安裝 Extension Pack for Java 就可以了。
這裡面包含了多個 Java 開發相關的擴充套件,像是語法高亮、程式碼補全、除錯等功能。
如果還沒有安裝 JDK,那其實裝完 VScode extension 後,創建 .java
file 時,也會被提示要安裝 JDK。
但總之,裝好 JDK 跟 VScode extension 後,就可以開始寫 Java 程式了。
Java 撰寫架構
首先要知道的是,Java 是非常典型的 OOP 語言,所以他的一切都建立在 class (類別) 的基礎上。
那對 Java 來說,一個 .java
file 就是一個 public class,且檔名必須要跟 class 名稱相同 (包含大小寫)。
一個 .java
file 的撰寫架構可以區分成幾區:
- package 宣告 (可選) → 用來宣告這個 class 屬於哪個 package (套件)
- import 宣告 (可選) → 用來引入其他 package 的 class
- 主類別宣告 (必須) → 用來宣告這個 class 的名稱。要注意的是,所謂主類別宣告,就是
public class ClassName
,而一個.java
file 只能有一個主類別宣告。
- 有 package 宣告的 class
- 同一個 package 裡的其他 class → 直接使用,不需要 import
- 不同 package 裡的 class → 必須 import
- 沒有 package 宣告的 class(default package)
- 同一個資料夾下的其他 class → 可以直接使用,不需要 import
- 但 default package 的 class 無法被有 package 的 class import,也就是說,default package 只能在同一個 default package 裡使用
主類別宣告的 class 裡面,又可以分成幾區:
- 屬性成員宣告 (可選) → 用來宣告這個 class 的屬性 (變數)
- 主方法宣告 → 就是很常見的
public static void main(String[] args)
,這是 Java 程式的進入點 (entry point),程式執行時會從這裡開始。 - 其他方法宣告 (可選) → 用來宣告這個 class 的其他方法 (函式)
下面是一個簡單的 Java 範例,展示了上述的架構:
Sum.java
: 先建一個簡單的 Java 檔案,作為下一支檔案調用的對象。
public class Sum {
public static void main(String[] args) {
int a = 5;
int b = 10;
int sum = a + b;
System.out.println("The sum is: " + sum);
}
}
PrintName.java
: 再建一個 Java 檔案,作為主要示範對象,並且 importSum
這個 class。
public class PrintName {
static String myName = "Jeremy Ho";
public static void main(String[] args) {
printSomething(myName);
printSomething("Hello, World!");
Sum.main(null); // Call the main method of Sum class
}
static void printSomething(String something) {
System.out.println(something);
}
}
static
是告訴 Java 分配一個記憶體空間給這個方法或屬性,讓它可以在沒有創建 class 實例 (instance) 的情況下被呼叫。
換言之,就是加了 static
的方法或屬性,可以直接調用,而不需要先創建這個 class 的物件。
如果不宣告 static
,那麼這個方法或屬性就屬於 class 的實例 (instance),必須先創建這個 class 的物件,然後透過這個物件來呼叫這個方法或屬性。
舉例來說:
public class PrintName {
String myName = "Jeremy Ho";
public static void main(String[] args) {
PrintName instance = new PrintName();
instance.printSomething(instance.myName);
instance.printSomething("Hello, World!");
}
void printSomething(String something) {
System.out.println(something);
}
}