java高*之JVM命令参数大全(概述)
概要
java [options] classname [args]
java [options] -jar filename [args]
javaw [options] classname [args]
javaw [options] -jar filename [args]
- options:命令行选项,使用空格分割
- classname:启动类的名称
- filename:jar包文件名称,仅和-jar名选项一起使用。
- args: 传递给main方法的参数,使用空格分隔。
描述:
java命令通过启动JRE来启动一个java应用。这个过程伴随着加载类、访问类的main方法。main方法必须被定义成public和static,并且不能有任何返回值,和接收一个字符串数组为参数,这个方法的声明如下:
public static void main(String[] args)
java命令也用来启动javaFX应用,同样此类也有main方法或者继承了javafx.application.Application类。后者会构造一个Application 类的实例,然后调用其init方法,最后调用start(javafx.stage.Stage)方法。
默认情况下,如果第一个参数不是一个java命令你给选项,那么就必须是一个将要被访问的java类的全限定名。如果第一个参数是-jar选项,它的参数就是包含类和资源的jar包名称,而且启动类必须在mf文件
中通过Main-Class来指定。
JRE会在三个集合中寻找应用的启动类以及使用到的类:引导类路径、扩展类路径、用户类路径。
在classname和file那么厚跟的就是需要传递给main方法的参数。
javaw和 java相似,但是javaw没有没有与之关联的控制窗口。javaw如果启动失败会显示一个对话框提示错误信息。java通过控制台运行,javaw则不是。java用于启动window console 控制台程序
javaw用于启动 GUI程序,如果是基于纯文本的编成用java。如果是图形化但随时打印成纯文本用java。如果你在检查错误,用java。如果程序是纯粹的图形化的,而且你需要提升速度,用javaw。
选项
java命令行支持很多参数,他们可以被分成以下几类:
1:标准选项
2:非标准选项
3:高级运行时选项
4:高级JIT编译选项
5:高级可维护性选项
6:高级垃圾收集选项
标准选项是必须被所有的JVM实现支持的。他们是公共的操作,比如检查JRE的版本,设置类路径,支持详细输出等等。
非标准选项是特指hotspot虚拟机中的选项,所以它们不是被所有的虚拟机实现支持,这些选线以-X开头
高级选线不建议随便使用,它们是开发者选项,用来调整特定的虚拟机操作,这些操作经常针对特定的操作系统以及环境变量参数。它们也不是被所有的虚拟机支持,高级选项以-XX开头
为了记录失效的或者在新版本中已经被删除的选项,在本章最后的一节介绍:失效和删除的选项。
Boolean 选项是使那些默认关闭的特性开启或者使默认开启的特性关闭,这样的选项不需要参数,如果是开启则使用+号(-XX:+OptionName) ,如果是关闭则使用-号(-XX:-OptionName)。
对于那些需要参数的选项,参数和选项以空格、冒号、等于号分开,或者参数直接跟在选项后。如果你想使用字节来指定大小,你可以不使用后缀或者使用k(K)或者m(M)或者g(G).如果你想指定
一个百分数的值,使用 0到1中间的数表示(0.25表示25%)。
后面的章节继续分类介绍jvm参数