在 Debian 上配置 Java(通常指 Oracle JDK / OpenJDK)并做到“最优”,一般包含:安装合适版本、设置 JAVA_HOME、配置默认版本、调优 JVM 参数、系统资源优化。下面按步骤说明。
sudo apt update
sudo apt upgrade -y
sudo apt install -y openjdk-17-jdk
其他常见版本:
openjdk-11-jdk
openjdk-21-jdk
查看是否安装成功:
java -version
sudo update-alternatives --config java
示例路径:
/usr/lib/jvm/java-17-openjdk-amd64
编辑全局配置:
sudo nano /etc/environment
添加(按实际路径):
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
保存后执行:
source /etc/environment
echo $JAVA_HOME
sudo update-alternatives --config java
sudo update-alternatives --config javac
选择对应编号即可。
java -Xms512m -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+HeapDumpOnOutOfMemoryError \
-jar app.jar
说明:
-Xms / -Xmx:堆内存初始 / 最大(建议相等)UseG1GC:现代 GC,低延迟HeapDumpOnOutOfMemoryError:OOM 自动 dump-XX:+UseContainerSupport
-XX:MaxRAMPercentage=75
sudo nano /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
sudo swapoff -a
sudo nano /etc/systemd/system/java-app.service
示例:
[Unit]
Description=Java App
After=network.target
[Service]
User=appuser
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ExecStart=/usr/bin/java -Xms512m -Xmx2g -jar /opt/app/app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable java-app
sudo systemctl start java-app
jps
jstat -gc <pid>
如果你告诉我:
我可以给你一套精确 JVM 参数模板。