以下是java -jar命令的一些常用操作参数:
JVM性能调优参数
• -Xms<size>:设置Java堆的初始大小。例如,-Xms512m表示初始堆内存为512MB。
• -Xmx<size>:设置Java堆的最大大小。例如,-Xmx2G表示最大堆内存为2GB。
• -Xss<size>:设置每个线程的栈大小。例如,-Xss1m表示每个线程栈大小为1MB。这些参数可以帮助优化应用程序的性能和内存使用情况。
系统属性参数
• -D<property>=<value>:设置系统属性。例如,-Dfile.encoding=UTF-8可以设置文件编码为UTF-8。通过这种方式,可以在启动应用程序时指定一些系统级别的配置。
日志与调试参数
• -verbose:class:启用类加载的详细输出,打印类加载信息,可用于调试类加载过程。
• -verbose:gc:启用垃圾收集器的详细输出,打印垃圾回收信息,有助于分析内存管理和性能问题。
其他参数
• -version:显示JVM的版本信息后退出,可用于检查当前使用的Java版本。
• -showversion:显示JVM的版本信息后继续执行,方便在启动时确认版本。
• -cp <classpath> 或 -classpath <classpath>:指定类路径,用于指定JAR文件依赖的其他类或库的位置。
传递给主类的参数
在使用java -jar命令时,还可以在JAR文件名后面直接跟上参数,这些参数会被传递给JAR文件内主类的main方法。例如:
java -jar your-application.jar param1 param2
这里的param1和param2就是传递给主类main方法的参数。
注意事项
• 确保JAR文件可执行:JAR文件必须包含一个主类,并且在MANIFEST.MF文件中正确声明了这个主类,否则会报错无法执行。
• 环境变量配置:系统需要正确安装Java Development Kit(JDK)或Java Runtime Environment(JRE),并且JAVA_HOME环境变量设置正确,同时相应的bin目录已添加到系统的PATH环境变量中。
• 依赖管理:如果JAR文件依赖其他库或JAR包,需要在MANIFEST.MF文件中使用Class-Path属性指定这些依赖的路径,或者在运行时通过-cp或-classpath参数指定。
示例
以下是一个运行JAR文件并设置JVM参数的示例命令:
java -Xmx2G -jar your-application.jar
该命令会以前台模式启动JAR文件,并将Java堆的最大大小设置为2GB。
如果希望JAR文件在后台运行,并将输出重定向到文件中,可以使用以下命令(在Linux/macOS系统中):
nohup java -jar your-application.jar > application.log 2>&1 &
这条命令会让JAR文件在后台运行,并将标准输出和标准错误都重定向到application.log文件中