java命令行参数详解

Posted 晨港飞燕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java命令行参数详解相关的知识,希望对你有一定的参考价值。

读完本篇文章你会了解到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.堆内存设置

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:OnOutOfMemoryError=string 与上面一样。

6.JavaAgent

log4j相关:

log4j 读取系统环境变量

log4j详细配置

​Java 配置log4j日志文件路径

log4j2配置文件动态获取容器环境变量

参考:

java命令行参数详解_腾讯新闻

以上是关于java命令行参数详解的主要内容,如果未能解决你的问题,请参考以下文章

JVM运行时参数详解

JVM运行时参数详解

JVM运行时参数详解

java jinfo命令详解

Python 命令行参数和getopt模块详解

JVM命令参数详解