根據項目需求和系統兼容性選擇Java版本:
sudo apt install openjdk-17-jdk
(Ubuntu/Debian)或sudo yum install java-17-openjdk-devel
(CentOS/RHEL)安裝。環境變量是Java運行的基礎,需重點關注以下幾點:
JAVA_HOME
:指向JDK安裝根目錄(如/usr/lib/jvm/java-17-openjdk-amd64
),為IDE和中間件提供基礎路徑;PATH
:添加$JAVA_HOME/bin
,確保java
、javac
等命令全局可用;CLASSPATH
:現代Java(JDK 11+)通常無需手動設置(默認包含當前目錄.
)。~/.bashrc
或~/.zshrc
,僅當前用戶生效;/etc/environment
或/etc/profile.d/java.sh
,所有用戶生效。source ~/.bashrc
(或對應文件),通過echo $JAVA_HOME
(應顯示安裝路徑)、java -version
(應顯示版本信息)、javac -version
(驗證編譯器)確認配置正確。若系統安裝多個Java版本(如JDK 11、17),可通過以下方法快速切換:
update-alternatives
工具(系統自帶):sudo update-alternatives --config java
,選擇對應版本的序號即可切換;~/.bashrc
中添加以下腳本,通過switch_java
命令切換版本:# Java版本管理
export JAVA_HOME_11=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_HOME_17=/usr/lib/jvm/java-17-openjdk-amd64
export JAVA_HOME=$JAVA_HOME_17 # 默認使用JDK 17
export PATH=$JAVA_HOME/bin:$PATH
function switch_java() {
version=$1
case $version in
11) export JAVA_HOME=$JAVA_HOME_11 ;;
17) export JAVA_HOME=$JAVA_HOME_17 ;;
*) echo "Usage: switch_java [11|17]" && return 1 ;;
esac
export PATH=$JAVA_HOME/bin:$PATH
echo "Switched to Java $version"
java -version
}
function which_java() {
echo "Current Java version:"
java -version
echo "JAVA_HOME=$JAVA_HOME"
}
執行source ~/.bashrc
后,可通過switch_java 11
(切換至JDK 11)、which_java
(查看當前版本)管理版本。根據應用類型(如Web服務、大數據處理)調整JVM參數,優化內存和垃圾回收:
-Xms
(初始堆大?。?、-Xmx
(最大堆大?。┫拗贫褍却?,避免頻繁擴容。例如:-Xms2G -Xmx4G
(初始2GB,最大4GB);-XX:+UseG1GC
);-XX:+UseParallelGC
);java -Xms2G -Xmx4G -XX:+UseG1GC -jar myapp.jar
生產環境中,可將這些參數寫入Tomcat的catalina.sh
(CATALINA_OPTS
)或Spring Boot的application.properties
中。優先使用系統包管理器(如apt
、yum
)安裝Java,避免手動下載和解壓:
sudo apt update
sudo apt install openjdk-17-jdk # 安裝OpenJDK 17
sudo apt install oracle-java17-installer # 安裝Oracle JDK 17(需添加PPA)
sudo yum install java-17-openjdk-devel # 安裝OpenJDK 17
包管理器會自動處理依賴和系統更新,確保Java版本安全。配置完成后,務必通過以下命令全面驗證:
java -version
(應顯示安裝的Java版本);javac -version
(確認JDK安裝完整);echo $JAVA_HOME
(應顯示JDK根目錄)、echo $PATH
(應包含$JAVA_HOME/bin
);Hello.java
(public class Hello { public static void main(String[] args) { System.out.println("配置成功!"); } }
),執行javac Hello.java && java Hello
,應輸出“配置成功!”。PATH
是否包含$JAVA_HOME/bin
,或執行source
命令使配置生效;sudo update-alternatives --config java
切換版本,或修改JAVA_HOME
路徑;~/.bashrc
而非/etc/profile
),并執行source
命令;JAVA_HOME
一致(如jdk-17.0.8
),避免路徑錯誤。