在 Ubuntu 下设置 Java 内存,通常是通过 JVM 启动参数 来配置的,最常用的是 -Xms(初始堆内存)和 -Xmx(最大堆内存)。下面按常见场景给你说明。
java -Xms512m -Xmx2g -jar your_app.jar
含义:
-Xms512m:JVM 启动时使用 512MB 内存-Xmx2g:JVM 最多使用 2GB 内存✅ 推荐:
java -XX:+PrintFlagsFinal -version | grep HeapSize
或者:
jps
jstat -gc <pid>
Java 8 以后用 Metaspace 代替 PermGen:
java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -jar app.jar
编辑:
sudo nano /opt/tomcat/bin/setenv.sh
加入:
export CATALINA_OPTS="-Xms1g -Xmx2g -XX:MaxMetaspaceSize=256m"
重启 Tomcat:
sudo systemctl restart tomcat
如果你用 .service 文件:
[Service]
Environment="JAVA_OPTS=-Xms1g -Xmx2g"
ExecStart=/usr/bin/java $JAVA_OPTS -jar /path/app.jar
然后:
sudo systemctl daemon-reload
sudo systemctl restart yourapp
在 Ubuntu + Docker 中,一定要限制 JVM 内存,否则容易 OOM:
docker run -e JAVA_OPTS="-Xms512m -Xmx512m" my-java-app
Java 8u191+ 支持自动识别容器内存:
-XX:+UseContainerSupport
JAVA_TOOL_OPTIONS 覆盖如果你能告诉我:
我可以给你 精确的一行配置。