JAVA命令参数详解
JAVA命令参数详解
JAVA命令详解
- 结构
- 说明
- Java 和 OldJava
- JIT
- 选项
- 另请参阅
结构
java [ options ] class [ argument ... ]
java [ options ] -jar file.jar [ argument ... ]
javaw [ options ] class [ argument ... ]
javaw [ options ] -jar file.jar [ argument ... ]
oldjava [ options ] class [ argument ... ]
oldjavaw [ options ] class [ argument ... ]
options- 命令行选项。
class- 要调用的类名。
file.jar- 要调用的 jar 文件名。只与
-jar一起使用。argument- 传给 main 函数的参数。
说明
java
public static void main(String[])缺省情况下,第一个非选项参数是要调用的类名。应当使用全限定类名。如果指定了 -jar 选项,那么第一个非选项参数是 JAR 归档文件的名称,该归档文件包含应用程序的类和资源文件以及 Main-Class 清单头指定的启动类。
Java 运行时环境在下面三个位置集中查找启动类和使用到的其它类:自举类路径、安装方式扩展和用户类路径。
类名或 JAR 文件名后的非选项参数被传递给 main 函数。
工具启动 Java 应用程序。它通过启动 Java 运行时环境,装载指定的类并调用该类的 main 方法,从而实现此功能。main 方法必须有以下的用法说明:
JAVA 和 OLDJAVA
下面是 java 和 oldjava 之间的区别:
- oldjava 启动器不支持扩展机制。扩展包仍可用作类和资源归档文件。
- oldjava 启动器对所有类都使用自举类加载器,而 java 启动器只对自举类使用自举类加载器。这使得与基本类加载器不兼容的编程技术得以存在。
- 在 java 中, -classpath 和 -cp 选项用于指定用户类的搜索路径,它们不能用来指定自举类的位置。而在 oldjava 中,-classpath 和 -cp 选项指定包括自举类在内的所有类的位置。
注意: java 和 oldjava 在 CLASSPATH 环境变量的使用上无不同之处。除非 CLASSPATH 被 -classpath 或 -cp 覆盖了,否则它总是指定用户类的位置,而不提供自举类的任何信息。
- oldjava 启动器支持所有的 1.2 安全功能。但对于 oldjava 来说,从类路径加载的类没有保护域,因而在 java 启动器中只有自举类才拥有的所有权限它都拥有。
以下命令使用 oldjava:
oldjava -classpath <path> ...它等同于下述使用 java 的命令:
java -Xbootclasspath:<path> -Djava.ext.dirs= ...上述两种情形中,<path> 都包含文件 rt.jar(有关 rt.jar 及其在 JDK 软件中的位置的说明,参见 JDK 文件结构文档)。
JIT
启动器的缺省行为是用“即时”编译器(或 JIT)执行字节码。缺省编译器位于 jre\bin\symcjit.dll 中。当加载类时,JIT 将类字节码转换成本机代码。使用 JIT 会导致在每个类加载后有短暂延迟,但可提高程序的总体性能。在某些情况下,执行时间可缩短十分之一。
如果禁用了 JIT ,解释器将直接执行字节码。有两种办法可将 JIT 禁用:
- 用以下的 set 命令将环境变量 JAVA_COMPILER 设为 NONE:
C:\> set JAVA_COMPILER=NONE在 Windows NT 上,也可用系统控制面板设置 JAVA_COMPILER。
- 用 -D 命令行选项将 java.compiler 设为 NONE:
C:\> java -Djava.compiler=NONE myapp使用命令行选项将覆盖 JAVA_COMPILER 环境变量的设置。
也可用 JAVA_COMPILER 或 java.compiler 来指定要使用另一个 JIT:
C:\> set JAVA_COMPILER=foo或
C:\> java -Djava.compiler=foo myapp将 .dll 扩展名加到 "foo" 后,该例中虚拟机将查找名为 foo.dll 的 JIT 编译器。搜索其它编译器是在 jre\bin 目录中和系统的 PATH (路径)上进行的。若找不到这样的编译器,虚拟机将缺省使用解释器。
选项
启动器有一组标准选项,当前的运行时环境支持这些选项并且将来的版本也将支持它们。还有一组其它的非标准选项是特定于目前的虚拟机实现的,将来可能要有变化。非标准选项以 -X 打头。
标准选项
- -classpath 类路径
- -cp 类路径
- 指定一个用于查找类文件的列表,它由目录、 JAR 归档文件和 ZIP 归档文件组成。类路径项用分号 (;) 分隔。指定 -classpath 或 -cp 将覆盖 CLASSPATH 环境变量的所有设置。
-classpath 或 -cp 与 java 或 javaw 一起使用时用于指定用户类和自举类的类路径。-classpath 或 -cp 与 oldjava 或 oldjavaw 一起使用时仅用于指定用户类的类路径。
如果不使用 -classpath 和 -cp,且没有设定 CLASSPATH ,则用户类路径由当前目录 (
.) 构成。有关类路径的详细信息,请参阅设置类路径。
- -D属性=值
- 设置系统属性的值。
- -jar
- 执行封装在 JAR 归档文件中的程序。第一个参数是 JAR 归档文件的名称而不是启动类名。启动类由 Main-Class 清单头指定。JAR 文件是所有用户类的源,其它的用户类路径设置将被忽略。
oldjava 和 oldjavaw 工具不支持 -jar 选项。
- -verbose
- -verbose:class
- 显示每个所加载的类的信息。
- -verbose:gc
- 报告每个垃圾收集事件。
- -verbose:jni
- 报告有关本地方法的使用和其它 Java 平台相关代码接口活动的信息。
- -version
- 显示版本信息并退出。
- -?
- -help
- 显示用法信息并退出。
- -X
- 显示非标准选项的有关信息并退出。
非标准选项
- -Xbootclasspath:自举类路径
- 指定以分号分隔的目录、 JAR 归档文件和 ZIP 归档文件列表,用以查找自举类文件。这些自举类文件用来取代 JDK 1.2 软件中所包括的自举类文件。
- -Xdebug
- 启动激活的调试器。Java 解释器将输出一密码供 jdb 使用。有关详细资料及程序示例,请参阅 jdb 说明。
- -Xnoclassgc
- 禁用类垃圾收集
- -Xmsn
- 指定内存分配池的初始容量。该值必须大于 1000。要使该值扩大 1000 倍,须附加上字母 k,要使该值扩大一百万倍,须附加上字母 m。缺省值为 1m。
- -Xmxn
- 指定内存分配池的最大容量。该值必须大于 1000。要将它扩大 1000 倍,须附加上字母 k,要将该值扩大一百万倍,须附加上字母 m。缺省值为 16m。
- -Xrunhprof[:help][:<子选项>=<值>,...]
- 启用 cpu 、堆或监视器监控操作。该选项后面一般跟着一个列表,该列表由以逗号分隔的 "<子选项>=<值>" 对所组成。运行命令 java -Xrunhprof:help 可获得子选项及其缺省值的列表。
- -Xrs
- 减少操作系统信号的使用。
- -Xcheck:jni
- 对 Java 平台相关代码接口函数进行额外检查。
JAVA命令参数详解的更多相关文章
- JAVA 命令参数详解System.setProperty(
JAVA 命令参数详解: 1.-D<name>=<value> set a system property 设置系统属性. java -D参数简化加入多个jar java命令 ...
- Spring Boot启动命令参数详解及源码分析
使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...
- Oracle中用exp/imp命令参数详解【转】
Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp sy ...
- nginx命令:启动,停止及命令参数详解
nginx命令:启动nginx 在Windows上安装好nginx后,我们需要启动nginx服务,启动nginx服务的命令行操作主要有两种方式,即 1 C:/nginx-0.8.53>nginx ...
- (转)Linux curl命令参数详解
Linux curl命令参数详解 命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具, ...
- 3.3、Ansible命令参数详解
0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...
- ffmpeg命令参数详解
ffmpeg命令参数详解 http://linux.51yip.com/search/ffmpeg ffmpeg图片加滤镜效果 参考:https://cloud.tencent.com/develop ...
- Linux中mpstat命令参数详解
Linux中mpstat命令参数详解 mpstat 是 Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在 /proc/stat ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...
随机推荐
- Usaco 1.3.2 修理牛棚(Barn Repair)
Barn Repair 题意:在一个夜黑风高,下着暴风雨的夜晚,农民约翰的牛棚的屋顶.门被吹飞了. 好在许多牛正在度假,所以牛棚没有住满. 剩下的牛一个紧挨着另一个被排成一行来过夜. 有些牛棚里有 ...
- 中文分词算法之最大正向匹配算法(Python版)
最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候 ...
- JAVA之成员变量初始化
java中成员变量的初始化,如果是普通成员变量可以赋初值,如果没赋初值,则系统会自动赋初值.而对于局部变量必须手动赋初值. package MyText2; public class MyText1 ...
- Socket 心跳包机制总结
跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着.事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一 ...
- 被忽视的META标签之特效
在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实meta标签也可以实现很多漂亮的页面过渡效果. META标签是HTML语言HEAD区的一个辅助 ...
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由(database).集合(collection).文档对象(documen ...
- SVN权限解析规则详解(转)
首先创建一个版本库后,会生成最初的目录结构和基本的配置文件,本文主要分析“authz”文件的内容:我们先抛开alias和groups不谈,将重点放在路径的权限配置上. 一. 权限格式 svn权限的基本 ...
- SDL Guide 中文译版
SDL即Simple DirectMedia Layer,类似DirectX,是完整的游戏.多媒体开发包,但不同的是它跨越几乎所有的平台,有各种语言的接口,多种语言的文档,而这一切都是广大志愿者完成的 ...
- 大话项目管理工具之Confluence篇
前言 前面的两篇文章,讲的都是代码层次上的项目管理工具.这篇文章打算介绍一下关于知识管理的工具,当然,它也属于项目管理中的一部分.说到知识管理,你想到了什么呢?织网?找节点?不错,这是个人的知识管理. ...
- 《c陷阱与缺陷》笔记--注意边界值
如果要自己实现一个获取绝对值的函数,应该都没有问题,我这边也自己写了一个: void myabs(int i){ if(i>=0){ printf("%d\n",i); }e ...