Java命令行参数完全解析

需积分: 38 6 下载量 188 浏览量 更新于2024-09-15 1 收藏 162KB PDF 举报
"Java命令参数说明大全" Java命令行参数是控制Java虚拟机(JVM)行为的关键工具,它们允许开发者调整程序运行时的配置,优化性能,以及进行调试。以下是一些重要的Java命令参数的详细说明: 1. **-client, -server**: 这两个参数用于选择JVM的实现。`-client`模式适用于轻量级环境,启动速度快,而`-server`模式针对服务器环境,提供更好的性能优化。 2. **-hotspot**: 这个不是正式的命令行参数,但通常与`-client`或`-server`一起使用,指的是HotSpot JVM,它是Oracle Java的默认实现。 3. **-classpath, -cp**: 这些参数用于指定Java类路径,即JVM查找类文件的路径。可以包含多个目录和JAR文件,用分号或冒号分隔。 4. **-D<propertyName>=value**: 此参数用于设置系统属性,如`java.home`或自定义的属性。`value`是属性的值。 5. **-verbose[:class|gc|jni]**: 启用详细输出。如果未指定,会显示所有信息;若指定"class",则显示类加载信息;"gc"表示垃圾收集日志;"jni"用于JNI(Java Native Interface)调用的日志。 6. **-verbose:gc**: 开启垃圾回收的详细日志,这对于分析内存使用和调优很有帮助。 7. **-verbose:jni**: 显示JNI方法调用的详细信息。 8. **-version**: 显示Java版本信息。 9. **-showversion**: 类似于`-version`,但还会显示JVM的具体实现和供应商信息。 10. **-ea[:<packagename>|:<classname>] / -enableassertions**: 启用断言,可指定包或类,用于测试代码。 11. **-da[:<packagename>|:<classname>] / -disableassertions**: 禁用断言,同样可指定范围。 12. **-esa|-enablesystemassertions**: 全局启用系统级别的断言。 13. **-dsa|-disablesystemassertions**: 全局禁用系统级别的断言。 14. **-agentlib:<libname>[=<options>]**: 加载本地库(native library),例如`-agentlib:hprof`用来启用heap profiling。 15. **-agentpath:<pathname>[=<options>]**: 指定本地库的绝对路径。 16. **-javaagent:<jarpath>[=<options>]**: 加载Java代理库,通常用于AOP(面向切面编程)或性能监控。 17. **-Xmixed**: 混合模式,使JVM在解释和编译之间切换。 18. **-Xint**: 强制JVM始终以解释模式运行,不进行即时编译。 19. **-Xbootclasspath/path**: 设置引导类路径,用于加载核心Java类。 20. **-Xbootclasspath/a:path** 和 **-Xbootclasspath/p:path**: 分别追加和预置引导类路径。 21. **-Xnoclassgc**: 禁止类卸载,这会影响垃圾回收。 22. **-Xincgc**: 启用增量垃圾收集器,适用于小内存环境。 23. **-Xloggc:<file>**: 将垃圾收集日志输出到指定文件。 24. **-Xbatch**: 关闭后台编译,使得所有编译都在主线程中执行。 25. **-Xms<size>**: 设置JVM初始堆大小。 26. **-Xmx<size>**: 设置JVM最大堆大小。 27. **-Xss<size>**: 设置每个线程的栈大小。 28. **-Xprof**: 输出CPU和时间使用情况的概要信息。 29. **-Xfuture**: 启用未来可能成为标准的实验性特性。 这些参数的使用可以帮助开发者根据具体需求调整Java应用程序的行为,优化性能,解决问题,并提高开发效率。理解并熟练运用这些参数对于Java开发者来说至关重要。