前言
在看Btrace源码的时候,了解到一些陌生的启动命令参数,例如-Xbootclasspath等,之前也曾遇到过,但并没有去进一步全面了解,在此则进行介绍。
简介
Java 的启动参数包括标准的参数(运行环境参数)和非标准的参数(JVM实现支持的参数)。
标准的参数
参数 |
描述 |
-client
|
client模式启动 |
-server
|
Service模式启动 |
-classpath
classpath
-cp
classpath
|
加入classpath |
-D
property
=
value
|
加入到system property 中 |
-d32
-d64
|
启动的操作系统位数 |
-enableassertions
[:<package name>"..." | :<class name> ]
-ea
[:<package name>"..." | :<class name> ]
|
启动断言 |
-disableassertions
[:<package name>"..." | :<class name> ]
-da
[:<package name>"..." | :<class name> ]
|
禁止断言 |
-enablesystemassertions
-esa
|
启动系统断言 |
-disablesystemassertions
-dsa
|
禁止系统断言 |
-jar
|
启动jar |
-verbose
-verbose:class
|
打印载入的class信息 |
-verbose:gc
|
打印GC的收集时的信息 |
-verbose:jni
|
打印jni调用native的方法行为 |
-version
|
打印java的版本信息后退出 |
-showversion
|
打印java的版本信息,但不退出 |
-?
-help
|
帮助 |
-X
|
打印非标准的参数信息 |
非标准的参数
参数
|
描述 |
-Xint
|
设置jvm以解释模式执行,所有字节码解释执行 |
-Xbatch
|
关闭后台代码编译。正常情况下,VM会在后台编译代码,运行的方法将以解释的模式运行,知道后台编译完成。该参数则强制编译在前台执行,等所有编译完才能运行代码。 |
-Xdebug
|
启动debugger。具体可以参考
jdb description
|
-Xbootclasspath:
bootclasspath
|
指定用冒号分割的文件目录、jar或者zip文件,加入到boot class。用来代替java2 SDK中的boot class 文件。常被用来覆盖rt.jar的类。一般情况不会使用。
|
-Xbootclasspath/a:
path
|
和Xbootclasspath
参数用途一样,只是该选项是追加path到bootstrap class path中,而非替换。 |
-Xbootclasspath/p:
path
|
和Xbootclasspath/a
参数用途一样,只是追加的目录将优先于默认的bootstrap class path |
-Xcheck:jni
|
在执行native方法前进行检查。JVM会校验传递给jni方法的参数在执行jni请求前。在native中一个非法的数据将会导致JVM终止。如果开启该参数,将会降低性能。 |
-Xfuture
|
对class文件进行严格检查。目的为了向后兼容。推荐开发人员使用该参数。 |
-Xnoclassgc
|
关闭class 的gc功能 |
-Xincgc
|
开启增量gc的功能,默认是关闭的。有助于减少gc的停顿时间,但可能会导致大概10%的性能损耗。 |
-Xloggc:
file
|
和verbose:gc参数类似,只是将gc信息打印在文件而不是控制台。和verbose:gc不同的是输出的信息中带有时间。 |
-Xms
n
|
指定初始堆的大小,默认单位为k。可以指定为m |
-Xmx
n
|
指定堆得最大的大小 |
-Xss
n
|
设置线程栈的大小 |
-Xprof
|
跟踪正在运行的程序,并输出跟踪信息到控制台。该参数主要用在开发环境,而不是生产环境。 |
-Xrunhprof
[:help
][:<suboption>=<value>,...
]
|
开启cpu、heap或者监视器的性能分析。具体介绍,可以参考
java -Xrunhprof:help
|
-Xrs
|
减少JVM对操作系统信号(signals)的使用。 |
关于JVM的其他参数,后续进行补充。
分享到:
相关推荐
Java 2语言命令详解 Java 2平台是Java技术的核心组成部分,它提供了广泛的功能和工具,使得开发者能够创建、编译、运行Java应用程序。在Java 2中,有一系列的命令行工具,它们是开发过程中的重要环节。下面将详细...
Java命令参数详解是Java开发中不可或缺的一部分,它们允许开发者对JVM(Java虚拟机)的行为进行微调,以优化程序的性能、控制内存使用、调试和监控等。本文将深入探讨一些关键的Java命令行参数。 1. **-version**: ...
Java2语言命令详解 在Java开发中,理解并掌握各种命令行工具是至关重要的,特别是对于初学者和专业开发者来说。Java2语言命令主要指Java Development Kit (JDK) 提供的一系列命令行工具,它们在Java程序的编译、...
### Maven命令详解 Maven是Java项目自动化构建工具的一个标准,它通过一组生命周期构建项目对象模型(POM),简化了构建过程。对于初学者来说,理解Maven的基本命令及其用法至关重要。 #### 1. `mvn -v` 用于显示...
### Java常见命令指南:深入解析与实践应用 #### 引言 Java作为全球最流行的编程语言之一,其强大的跨平台能力和丰富的生态系统深受开发者喜爱。掌握Java的各项命令是每个程序员的基本功,不仅能提升开发效率,还...
Java2 语言命令详解 Java2 语言是Java平台的核心组成部分,它提供了丰富的类库、强大的性能优化以及多线程支持。在Java2环境中,掌握各种命令行工具是每个开发者必备的技能。本文将深入探讨Java2语言命令的使用方法...
Java JDK 常用命令详解 Java JDK 提供了多种命令来帮助开发者更好地使用 Java 语言,以下是 JDK 中常用的命令解释: 1. rmic 命令 rmic 命令用于生成 stub 和 skeleton,它可以将 Java 类编译成可供远程对象使用...
在Java编程中,有时我们需要通过Java程序来执行操作系统级别的命令,例如启动、停止服务,或者进行一些系统级别的操作。本文将详细介绍如何使用Java Runtime类中的`getRuntime().exec()`方法来调用系统命令,并提供...
Java 2 应用命令详解 在 Java 开发和运行环境中,掌握各种命令行工具是至关重要的。Java 2 应用命令主要指的是用于管理、编译、运行和调试 Java 程序的一系列命令。这些命令使得开发者能够在不同的操作系统上高效地...
### Java命令详解:高手进阶 #### Java命令概述与应用场景 在Java开发中,掌握核心命令行工具对于提升开发效率、进行深入调试至关重要。本文将详细介绍`java.exe`、`javac.exe`、`javaw.exe`、`javah.exe`、`javap...
Java 2语言命令详解 Java 作为一门广泛使用的编程语言,其命令行工具在开发、编译、运行和管理Java程序中起着至关重要的作用。本文将深入探讨Java 2平台(J2SE)下的主要命令及其用法,帮助开发者更好地理解和掌握...
### Java 文件打包成 JAR 文件详解 #### 一、JAR 命令概述 JAR(Java Archive)是 Java 开发工具包 (JDK) 中的一个实用程序,用于将多个 Java 类文件和其他资源文件打包成一个 JAR 文件。JAR 文件不仅便于分发和...
本文将围绕"ICE104规约Java解析源码"这一主题,深入探讨ICE104规约的基本原理以及如何在Java环境中实现其解析。 首先,我们需要了解ICE104规约的基本结构。它由启动字符、控制域、地址域、信息对象域和校验域组成。...
### Java 文件打包成 .jar 文件及 jar 命令详解 #### 一、jar 命令概述 在 Java 开发中,经常会遇到需要将多个类文件或者资源文件打包成一个单独的 `.jar` 文件的需求。`.jar` 文件类似于 `.zip` 文件,是一种将多...