前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【原创】JVM系列06 | 如何设置虚拟机参数

【原创】JVM系列06 | 如何设置虚拟机参数

作者头像
java进阶架构师
发布2020-06-04 09:41:59
6170
发布2020-06-04 09:41:59
举报
文章被收录于专栏:Java进阶架构师Java进阶架构师

本文是何适 JVM 修仙系列第 6 篇,文末有本系列文章汇总。

从今天开始进入虚拟机参数部分的学习,通过学习虚拟机参数,设置虚拟机参数,配置和跟踪虚拟机,达到故障排查和性能优化的目的。

1. 执行 Java 程序的三种方法

执行 Java 程序的方法:

  1. 开发工具执行 Java 代码
  2. java -jar 命令执行 jar 包
  3. java -cp 命令执行 jar 包

接下来,以如下代码为例设置参数:

代码语言:javascript
复制
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");
    }
}

2. 开发工具设置参数

Eclipse 开发工具设置启动参数,如下图:run configurations --> Arguments --> VM Arguments

3. java -jar

代码语言:javascript
复制
java -jar [-options] .jar [args...]

-options表示虚拟机参数,如-Xmx32m
.jar 表示jar包路径
args表示main方法的参数
不需要设置main方法的类,因为MANIFEST.MF中配置了main方法的类

在我本地的 Windows 系统下执行指令及结果如下:

代码语言:javascript
复制
PS C:\Users\Administrator\Desktop> java -jar -Xmx32m .\A.jar A B C
第0个参数:A
第1个参数:B
第2个参数:C
系统可用最大堆内存:-Xmx32M

4. jar -cp

代码语言:javascript
复制
java -cp [-options] class [args...]

-options表示虚拟机参数,如-Xmx32m
class表示带有main方法的Java类
args表示main方法的参数

在我本地的 Windows 系统下执行指令及结果如下:

代码语言:javascript
复制
PS C:\Users\Administrator\Desktop> java -cp .\A.jar test.ArgsTest A B C
第0个参数:A
第1个参数:B
第2个参数:C
系统可用最大堆内存:-Xmx32M

参考资料

  1. 《深入理解 Java 虚拟机(第 2 版) : JVM 高级特性与最佳实践》
  2. 《实战 Java 虚拟机 : JVM 故障诊断与性能优化》

JVM 系列文章汇总

【原创】JVM系列01 | 开篇

【原创】JVM系列02 | Java虚拟机结构

【原创】JVM系列03 | Java栈—方法是如何调用的?

【原创】JVM系列04 | 栈上分配

【原创】JVM系列05 | TLAB上分配

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 执行 Java 程序的三种方法
  • 2. 开发工具设置参数
  • 3. java -jar
  • 4. jar -cp
    • 参考资料
    • JVM 系列文章汇总
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档