java菜鸟提问(Usage: javaw)
下面的是什么意思?我要解决。
Usage: javaw [-options] class [args...] (to execute a class) or javaw [-options] -jar jarfile [args...] (to execute a jar file)where options include: -client to select the "client" VM -server to select the "server" VM -hotspot is a synonym for the "client" VM [deprecated] The default VM is client. -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -verbose[:class|gc|jni] enable verbose output -version print product version and exit -version:<value> require the specified version to run -showversion print product version and continue -jre-restrict-search | -jre-no-restrict-search include/exclude user private JREs in the version search -? -help print this help message -X print help on non-standard options -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:<libname>[=<options>] load native agent library <libname>, e.g. -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=help -agentpath:<pathname>[=<options>] load native agent library by full pathname -javaagent:<jarpath>[=<options>] load Java programming language agent, see java.lang.instrument -splash:<imagepath> show splash screen with specified image
在运行时可用 System.getProperty(“java.class.path”)得到虚拟机查找类的路径。
使用-classpath 后虚拟机将不再使用 CLASSPATH 中的类搜索路径,如果-classpath 和
CLASSPATH 都没有设置,则虚拟机使用当前路径(.)作为类搜索路径。
推荐使用-classpath 来定义虚拟机要搜索的类路径,而不要使用环境变量 CLASSPATH 的搜
索路径,以减少多个项目同时使用 CLASSPATH 时存在的潜在冲突。例如应用 1 要使用
a1.0.jar 中的类 G,应用 2 要使用 a2.0.jar 中的类 G,a2.0.jar 是 a1.0.jar 的升级包,当
a1.0.jar,a2.0.jar 都在 CLASSPATH 中,虚拟机搜索到第一个包中的类 G 时就停止搜索,
如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G。
5. -D<propertyName>=value
在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用
当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
7. -verbose:gc
在虚拟机发生内存回收时在输出设备显示信息,格式如下:
[Full GC 268K->168K(1984K), 0.0187390 secs]
该参数用来监视虚拟机内存回收的情况。
8. -verbose:jni
在虚拟机调用 native 方法时输出设备显示信息,格式如下:
[Dynamic-linking native method HelloNative.sum ... JNI]
该参数用来监视虚拟机调用本地方法的情况,在发生 jni错误时可为诊断提供便利。
9. -version
显示可运行的虚拟机版本信息然后退出。一台机器上装有不同版本的 JDK 时
10. -showversion
显示版本信息以及帮助信息。
11. -ea[:<packagename>...|:<classname>]
12. -enableassertions[:<packagename>...|:<classname>]
从 JDK1.4 开始,java 可支持断言机制,用于诊断运行时问题。通常在测试阶段使断言有效,
在正式运行时不需要运行断言。断言后的表达式的值是一个逻辑值,为 true 时断言不运行,
为 false 时断言运行,抛出 java.lang.AssertionError 错误。
上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea 可打开
断言机制,不加<packagename>和 classname 时运行所有包和类中的断言,如果希望只运行
某些包或类中的断言,可将包名或类名加到-ea 之后。例如要启动包 com.foo.util 中的断
言,可用命令 –ea:com.foo.util 。
13. -da[:<packagename>...|:<classname>]
14. -disableassertions[:<packagename>...|:<classname>]
用来设置虚拟机关闭断言处理,packagename和classname 的使用方法和-ea 相同。
15. -esa | -enablesystemassertions
设置虚拟机显示系统类的断言。
16. -dsa | -disablesystemassertions
设置虚拟机关闭系统类的断言。
17. -agentlib:<libname>[=<options>]
该参数是 JDK5 新引入的,用于虚拟机装载本地代理库。
Libname 为本地代理库文件名,虚拟机的搜索路径为环境变量 PATH 中的路径,options 为传
给本地库启动时的参数,多个参数之间用逗号分隔。在 Windows 平台上虚拟机搜索本地库名
为 libname.dll 的文件,在 Unix 上虚拟机搜索本地库名为 libname.so 的文件,搜索路径环
境变量在不同系统上有所不同,Linux、SunOS、IRIX上为LD_LIBRARY_PATH,AIX上为LIBPATH,
HP-UX 上为SHLIB_PATH。
例如可使用-agentlib:hprof 来获取虚拟机的运行情况,包括 CPU、内存、线程等的运行数
据,并可输出到指定文件中,可用-agentlib:hprof=help 来得到使用帮助列表。在 jre\bin
目录下可发现 hprof.dll 文件。
18. -agentpath:<pathname>[=<options>]
设置虚拟机按全路径装载本地库,不再搜索 PATH 中的路径。其他功能和 agentlib 相同。
19. -javaagent:<jarpath>[=<options>]
虚拟机启动时装入java语言设备代理。Jarpath文件中的mainfest文件必须有Agent-Class
属性。代理类要实现 public static void premain(String agentArgs, Instrumentation
inst)方法。当虚拟机初始化时,将按代理类的说明顺序调用 premain方法。
参见:java.lang.instrument
三、 扩展参数说明
1. -Xmixed
设置-client 模式虚拟机对使用频率高的方式进行 Just-In-Time 编译和执行,对其他方法
使用解释方式执行。该方式是虚拟机缺省模式。
2. -Xint
设置-client模式下运行的虚拟机以解释方式执行类的字节码,不将字节码编译为本机码。
3. -Xbootclasspath:path
4. -Xbootclasspath/a:path
5. -Xbootclasspath/p:path
改变虚拟机装载缺省系统运行包 rt.jar 而从-Xbootclasspath 中设定的搜索路径中装载系
统运行类。除非你自己能写一个运行时,否则不会用到该参数。
/a:将在缺省搜索路径后加上 path 中的搜索路径。
/p:在缺省搜索路径前先搜索 path 中的搜索路径。
6. -Xnoclassgc
关闭虚拟机对 class 的垃圾回收功能。
7. -Xincgc
启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收
造成的暂停时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分 CPU 在应用程序
上的功能。
8. -Xloggc:<file>
将虚拟机每次垃圾回收的信息写到日志文件中,文件名由 file 指定,文件格式是平文件,
内容和-verbose:gc 输出内容相同。
9. -Xbatch
虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch参数将关
闭虚拟机后台编译,在前台编译完成后再执行。
10. -Xms<size>
设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为 1024 的整数倍并且要大于
1MB,可用 k(K)或m(M)为单位来设置较大的内存数。初始堆大小为 2MB。
例如:-Xms6400K,-Xms256M
11. -Xmx<size>
设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为 1024 整数倍,并且要大
于 2MB。可用 k(K)或 m(M)为单位来设置较大的内存数。缺省堆最大值为 64MB。
例如:-Xmx81920K,-Xmx80M
当应用程序申请了大内存运行时虚拟机抛出 java.lang.OutOfMemoryError: Java heap
space 错误,就需要使用-Xmx 设媒洗蟮目捎媚诖娑选?BR>
12. -Xss<size>
设置线程栈的大小,缺省单位为字节。与-Xmx 类似,也可用 K 或 M 来设置较大的值。通常
操作系统分配给线程栈的缺省大小为 1MB。
另外也可在 java 中创建线程对象时设置栈的大小,构造函数原型为 Thread(ThreadGroup
group, Runnable target, String name, long stackSize)。
13. -Xprof
输出 CPU 运行时的诊断信息。
14. -Xfuture
对类文件进行严格格式检查,以保证类代码符合类代码规范。为保持向后兼容,虚拟机缺省
不进行严格的格式检查。
15. -Xrs
减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式
运行时使用(如 Servlet)。
16. -Xcheck:jni
调用 JNI 函数时进行附加的检查,特别地虚拟机将校验传递给 JNI 函数参数的合法性,在本
地代码中遇到非法数据时,虚拟机将报一个致命错误而终止。使用该参数后将造成性能下降。