现在的位置: 首页 > 综合 > 正文

JAVA命令参数详解

2014年01月31日 ⁄ 综合 ⁄ 共 2999字 ⁄ 字号 评论关闭

转自:http://writeblog.csdn.net/PostEdit.aspx?entryId=6579332

 

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
属性
=
设置系统属性的值。
例如:java -Dconfig="/home/wyyl1/config.properties"

-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
禁用类垃圾收集
-Xms
n
指定内存分配池的初始容量。该值必须大于 1000。要使该值扩大 1000
倍,须附加上字母
k
,要使该值扩大一百万倍,须附加上字母
m
。缺省值为 1m
-Xmx
n
指定内存分配池的最大容量。该值必须大于 1000。要将它扩大 1000
倍,须附加上字母
k
,要将该值扩大一百万倍,须附加上字母
m
。缺省值为 16m
-Xrunhprof
[:help
][:<子选项>=<值>,...
]
启用 cpu
、堆或监视器监控操作。该选项后面一般跟着一个列表,该列表由以逗号分隔的
"<子选项>=<值>" 对所组成。运行命令 java
-Xrunhprof:help

可获得子选项及其缺省值的列表。
-Xrs
减少操作系统信号的使用。
-Xcheck:jni
对 Java 平台相关代码接口函数进行额外检查。

抱歉!评论已关闭.