Java 应用程序启动器的使用文档
结构 java[options]class[argument...]
java[options]-jarfile.jar[argument...]
javaw[options]class[argument...]
javaw[options]-jarfile.jar[argument...]
oldjava[options]class[argument...]
oldjavaw[options]class[argument...]
options
命令行选项。
class
要调用的类名。
file.jar
要调用的jar文件名。只与-jar一起使用。
argument
传给main函数的参数。
说明
java工具启动Java应用程序。它通过启动Java运行时环境,装载指定的类并调用该类的main方法,从而实现此功能。main方法必须有以下的用法说明:
publicstaticvoidmain(String[])
缺省情况下,第一个非选项参数是要调用的类名。应当使用全限定类名。如果指定了-jar选项,那么第一个非选项参数是JAR归档文件的名称,该归档文件包含应用程序的类和资源文件以及Main-Class清单头指定的启动类。
Java运行时环境在下面三个位置集中查找启动类和使用到的其它类:自举类路径、安装方式扩展和用户类路径。
类名或JAR文件名后的非选项参数被传递给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)执行字节码。缺省编译器位于jreinsymcjit.dll中。当加载类时,JIT将类字节码转换成本机代码。使用JIT会导致在每个类加载后有短暂延迟,但可提高程序的总体性能。在某些情况下,执行时间可缩短十分之一。
如果禁用了JIT,解释器将直接执行字节码。有两种办法可将JIT禁用:
用以下的set命令将环境变量JAVA_COMPILER设为NONE:
C:>setJAVA_COMPILER=NONE
在WindowsNT上,也可用系统控制面板设置JAVA_COMPILER。
用-D命令行选项将java.compiler设为NONE:
C:>java-Djava.compiler=NONEmyapp
使用命令行选项将覆盖JAVA_COMPILER环境变量的设置。
也可用JAVA_COMPILER或java.compiler来指定要使用另一个JIT:
C:>setJAVA_COMPILER=foo
或
C:>java-Djava.compiler=foomyapp
将.dll扩展名加到"foo"后,该例中虚拟机将查找名为foo.dll的JIT编译器。搜索其它编译器是在jrein目录中和系统的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归档文件列表,用以查找自举类文件。这些自举类文件用来取代JDK1.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平台相关代码接口函数进行额外检查