java命令行参数详解

愿天堂没有BUG

共 2516字,需浏览 6分钟

 ·

2021-11-09 02:47

作为一个java程序员,我始终保持谦逊进取的态度去对待,始终重视基础知识的学习,我觉得工作久了势必需要一些工具在身边,我的老大老是diss我,说我能发现和解决问题,但是效率不高,那是因为我每次都面向百度编程,没有收集和整理工具的习惯,于是就有了本篇文章。

读完本篇文章你会了解到java命令参数的含义,并可初步使用java命令来更好的启动和创建我们的应用。

创建和编译应用

这里可以看到一些内置命令工具,我按使用程度对他们进行了排序:

  • java:Launches a Java application.,启动一个java应用比如java -jar

  • javac:Reads Java class and interface definitions and compiles them into bytecode and class files.,编译工具,将源代码编译成字节码或者class文件

  • javap:Disassembles one or more class files.,反汇编

  • javadoc:Generates HTML pages of API documentation from Java source files.java API文档生成工具

  • jar:Manipulates Java Archive (JAR) files.操作jar包的,jar包本质上也是zip文件。

  • jdb:Finds and fixes bugs in Java platform programs.java debug,有idea后几乎不用了。

java的命令行参数描述

这么多工具,我们主要来介绍java命令,文档里说明了:当我们使用java命令启动应用时,该应用就通过jre来加载特定的类,并调用main方法,该方法必须声明为 public 和 static,它不能返回任何值,并且它必须接受一个 String 数组作为参数。

java命令的选项参数

java命令给我们提供了非常多的命令参数,当然也有非常多的划分,但我认为主要是两种划分:第一种是按选项进行划分,第二种是按照使用环境区分,我们可以使用java命令来看下:

选项划分

  • 标准选项:以“-”开头,比如-help -version,Java 虚拟机 (JVM) 的所有实现都保证支持标准选项。

  • 非标准选项:以“-X”开头,特定于Java HotSpot 虚拟机的通用选项,因此不能保证所有 JVM 实现都支持它们,并且可能会发生变化。

  • 高级选项:以“-XX”开头,这些是用于调整 Java HotSpot 虚拟机操作的特定区域的开发人员选项,这些区域通常具有特定的系统要求,并且可能需要对系统配置参数的特权访问。也不能保证所有 JVM 实现都支持它们,并且可能会发生变化。

  • 布尔选项:用于启用默认禁用的功能或禁用默认启用的功能。此类选项不需要参数。布尔 -XX 选项使用加号 (-XX:+OptionName) 启用,使用减号 (-XX:-OptionName) 禁用。

使用环境划分

1.系统属性

java -D:设置属性值 java -D属性名 = 属性值 比如:java -Dfile.encoding=utf-8

2.运行模式

java  -server 选择虚拟机模式,默认是“server” java虚拟机在启动应用时,启动器会对虚拟机模式进行检测,检测应用是否在服务器上的机器运行,如果是,那就以服务器的模式运行,目的是提高性能。

java虚拟机分为客户端模式和服务器模式,客户端模式下默认-Xms是1M,-Xmx是64M,适用于占用内存小,启动更快的产品,而服务端模式默认-Xms是128M,-Xmx是1024M,启动慢,但运行时性能和内存管理效率高,适用于生产环境。

  • java   -Xmixed           混合模式执行 (默认)

  • java -Xint             仅解释模式执行

3.堆内存设置

-Xms        设置初始 Java 堆大小
-Xmx 设置最大 Java 堆大小
-Xss 设置 Java 线程堆栈大小
-Xms 设置初始 Java 堆大小
-Xmx 设置最大 Java 堆大小
-Xmn 设置最大java年轻代堆大小
复制代码

4.GC设置

  • -XX:+UseParallelGC

  • -XX:+UseParallelOldGC

  • -XX:+UseParNewGC

  • -XX:+UseSerialGC

  • -XX:+UseParallelGC

  • -XX:+UseConcMarkSweepGC

  • -XX:+UseG1GC

5.分析诊断

-XX:+HeapDumpOnOutOfMemoryError:异常堆的快照,默认关闭,示例:-XX:+HeapDumpOnOutOfMemoryError -Xmx 256m 再指定个文件名

-XX:HeapDumpPath=path与上面的配合使用,指定转存文件目录,示例:-XX:HeapDumpPath=C:/log/java/java_heapdump.log

-XX:OnError=string,当错误发生的时候运行的命令,%p代表当前进程示例:-   -XX:OnError="userdump.exe %p"

-XX:OnOutOfMemoryError=string 与上面一样。

6.JavaAgent

-javaagent:[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument


作者:CocaCoder
链接:https://juejin.cn/post/7026914067805634574
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报