You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Java 1.4(1.4.2_08)的JVM当前堆大小?

解决Java 1.4中查看JVM堆大小的问题

你碰到的这个错误原因很明确——-XX:+PrintFlagsFinal这个JVM参数是从Java 5(也就是JDK 1.5)才正式引入的,Java 1.4完全不认识这个选项,所以启动时会直接报错说无法创建虚拟机。

针对Java 1.4.2_08版本,这里有几个可行的方法可以查看JVM堆大小:

  • 查看默认堆参数说明
    先执行java -X命令,它会列出所有Java 1.4支持的非标准JVM参数,其中就包含堆内存相关的-Xms(初始堆大小)和-Xmx(最大堆大小)的说明:

    java -X
    

    输出里会有类似这样的内容:

    -Xms set initial Java heap size
    -Xmx set maximum Java heap size
    -Xss set java thread stack size

  • 通过代码获取实际堆内存数据
    写一段简单的Java代码,利用Runtime API直接获取当前JVM的堆内存状态,这是最直观的方式:

    public class HeapChecker {
        public static void main(String[] args) {
            Runtime rt = Runtime.getRuntime();
            long initialHeap = rt.totalMemory() / (1024 * 1024);
            long maxHeap = rt.maxMemory() / (1024 * 1024);
            long freeHeap = rt.freeMemory() / (1024 * 1024);
            long usedHeap = (rt.totalMemory() - rt.freeMemory()) / (1024 * 1024);
    
            System.out.println("初始堆内存: " + initialHeap + " MB");
            System.out.println("最大堆内存: " + maxHeap + " MB");
            System.out.println("空闲堆内存: " + freeHeap + " MB");
            System.out.println("已使用堆内存: " + usedHeap + " MB");
        }
    }
    

    编译运行:

    javac HeapChecker.java && java HeapChecker
    

    就能得到当前JVM实际使用的堆内存数值。

  • 通过GC日志查看堆变化
    如果想观察程序运行过程中堆内存的动态变化,可以用-verbose:gc参数启动你的应用:

    java -verbose:gc YourMainClass
    

    每次GC触发时,控制台会输出类似这样的日志:

    [GC 325407K->83000K(776704K), 0.2300771 secs]
    [Full GC 83000K->82769K(776704K), 1.8479984 secs]
    括号里的数值就是当前JVM的最大堆大小,箭头前后则是GC前后的堆使用量。

内容的提问来源于stack exchange,提问作者user1930645

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:24