本文是何适 JVM 修仙系列第 6 篇,文末有本系列文章汇总。
从今天开始进入虚拟机参数部分的学习,通过学习虚拟机参数,设置虚拟机参数,配置和跟踪虚拟机,达到故障排查和性能优化的目的。
执行 Java 程序的方法:
接下来,以如下代码为例设置参数:
public class ArgsTest {
public static void main(String[] args) {
// args参数
for (int i = 0; i < args.length; i++) {
System.out.println("第" + i + "个参数:" + args[i]);
}
// 系统可用最大堆内存
System.out.println(" 系统可用最大堆内存:-Xmx" + Runtime.getRuntime().maxMemory() / 1000 / 1000 + "M");
}
}
Eclipse 开发工具设置启动参数,如下图:run configurations --> Arguments --> VM Arguments
java -jar [-options] .jar [args...]
-options表示虚拟机参数,如-Xmx32m
.jar 表示jar包路径
args表示main方法的参数
不需要设置main方法的类,因为MANIFEST.MF中配置了main方法的类
在我本地的 Windows 系统下执行指令及结果如下:
PS C:\Users\Administrator\Desktop> java -jar -Xmx32m .\A.jar A B C
第0个参数:A
第1个参数:B
第2个参数:C
系统可用最大堆内存:-Xmx32M
java -cp [-options] class [args...]
-options表示虚拟机参数,如-Xmx32m
class表示带有main方法的Java类
args表示main方法的参数
在我本地的 Windows 系统下执行指令及结果如下:
PS C:\Users\Administrator\Desktop> java -cp .\A.jar test.ArgsTest A B C
第0个参数:A
第1个参数:B
第2个参数:C
系统可用最大堆内存:-Xmx32M