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

下面是 javaoldjava 之间的区别:

  • oldjava 启动器不支持扩展机制。扩展包仍可用作类和资源归档文件。
  • oldjava 启动器对所有类都使用自举类加载器,而 java 启动器只对自举类使用自举类加载器。这使得与基本类加载器不兼容的编程技术得以存在。
  • java 中, -classpath-cp 选项用于指定用户类的搜索路径,它们不能用来指定自举类的位置。而在 oldjava 中,-classpath-cp 选项指定包括自举类在内的所有类的位置。

    注意: javaoldjavaCLASSPATH 环境变量的使用上不同之处。除非 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_COMPILERjava.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-cpjavajavaw 一起使用时用于指定用户类和自举类的类路径。-classpath-cpoldjavaoldjavaw 一起使用时仅用于指定用户类的类路径。

如果不使用 -classpath-cp,且没有设定 CLASSPATH ,则用户类路径由当前目录 (.) 构成。

有关类路径的详细信息,请参阅设置类路径。

-D属性=
设置系统属性的值。

-jar
执行封装在 JAR 归档文件中的程序。第一个参数是 JAR 归档文件的名称而不是启动类名。启动类由 Main-Class 清单头指定。JAR 文件是所有用户类的源,其它的用户类路径设置将被忽略。

oldjavaoldjavaw 工具不支持 -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命令参数详解的更多相关文章

  1. JAVA 命令参数详解System.setProperty(

    JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令 ...

  2. Spring Boot启动命令参数详解及源码分析

    使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...

  3. Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]:1  将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   exp sy ...

  4. nginx命令:启动,停止及命令参数详解

    nginx命令:启动nginx 在Windows上安装好nginx后,我们需要启动nginx服务,启动nginx服务的命令行操作主要有两种方式,即 1 C:/nginx-0.8.53>nginx ...

  5. (转)Linux curl命令参数详解

    Linux curl命令参数详解 命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具, ...

  6. 3.3、Ansible命令参数详解

    0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...

  7. ffmpeg命令参数详解

    ffmpeg命令参数详解 http://linux.51yip.com/search/ffmpeg ffmpeg图片加滤镜效果 参考:https://cloud.tencent.com/develop ...

  8. Linux中mpstat命令参数详解

    Linux中mpstat命令参数详解 mpstat 是 Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在 /proc/stat ...

  9. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

随机推荐

  1. Vector成员为指针时要注意的问题

    vector的复制是浅复制,所以复制一个包含动态内存的变量的对象的话就会出问题. 解决办法:自己写类的复制构造函数,为新对象的指针开辟新的内存空间. 但当vector离开作用域之后,只会把其成员所占的 ...

  2. python学习第二天第二部分

    一.变量:用来记录状态 变量值得变化即状态的变化,程序运行的本质就是来处理一系列状态的变化 python中所有数据都是对象 对象的三个特性: 身份(内存地址):用id()获取 类型:决定了该对象可以保 ...

  3. PHP利用微信跳转的Code参数获取用户的openid

    //获取微信登录用户信息function getOpenID($appid,$appsecret,$code){   $url="https://api.weixin.qq.com/sns/ ...

  4. Python脚本控制的WebDriver 常用操作 &lt;二十一&gt; 执行JS

    测试用例场景 如果你熟悉js的话,那么使用webdriver执行js就是一件很高效的事情了.在webdriver脚本中直接执行js的好处很多,这里就不一一枚举了. webdriver提供了execut ...

  5. 坑爹的Android Ble 问题记录日志

    开发Ble(公司项目,防丢器)已经有一段时间,由于是第一次接触Ble而网上资料又不多,且android平台自身的差异性,遇到了很多问题.为了将来方便查阅,在此做下记录.1.中兴手机,蓝牙手动断开后,无 ...

  6. 虚函数virtual

    简单地说,那些被virtual关键字修饰的成员函数,就是虚函数.虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离:用形象的语言来解释就是实现以共同 ...

  7. Hadoop安装(2)安装hadoop 前的centos 设置

    将虚拟机网络连接设为:Bridged 添加用户:hadoop,设置密码.关闭防火墙,selinux.暂且不关闭不需要的任务. 参照:http://www.cnblogs.com/xia520pi/ar ...

  8. 配置rsync+inotify实时同步

    与上一篇同步做 配置rsync+inotify实时同步 1:调整inotify内核参数 在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events.max_user ...

  9. 为什么23种设计模式没有 MVC

    MVC的是为了把数据(Model)和视图(View)分离开来,然后用控制器(Controller)来粘合M和V之间的关系. MVC是观察者模式(Observer), 策略模式(Strategy)和组合 ...

  10. codevs 2033 邮票

    洛谷 P2725 邮票 Stamps codevs 2033 邮票 题目链接 http://codevs.cn/problem/2033/ https://www.luogu.org/problemn ...