java –jar 如何使用
java -jar 的基本用法
java -jar 用于运行打包为可执行 JAR 文件的 Java 应用程序。命令格式如下:
java -jar <jar文件名>.jar
确保系统已安装 Java 环境(JDK 或 JRE),并通过 java -version 验证版本兼容性。
指定 JAR 文件的路径
如果 JAR 文件不在当前目录,需提供完整或相对路径:
java -jar /path/to/yourfile.jar
或相对路径(例如上级目录):
java -jar ../project/yourfile.jar
传递命令行参数
向 JAR 中的 main 方法传递参数时,在 JAR 文件名后添加参数:
java -jar app.jar arg1 arg2
程序内部通过 String[] args 接收这些参数。

内存与 JVM 参数配置
通过 JVM 参数调整运行配置,例如堆内存大小:
java -Xmx512m -Xms256m -jar app.jar
-Xmx512m:设置最大堆内存为 512MB。-Xms256m:设置初始堆内存为 256MB。
其他常用参数:
-D<property>=<value>:设置系统属性(如-Dconfig.file=/path/config.properties)。
依赖项与类路径问题
如果 JAR 依赖外部库,需通过 -cp 或 -classpath 指定依赖路径:

java -cp app.jar:lib/* com.example.Main
lib/*表示加载lib目录下所有 JAR 文件。
对于可执行 JAR,确保 MANIFEST.MF 中已正确配置 Class-Path。
常见问题排查
-
无主清单属性:
错误提示no main manifest attribute表示 JAR 的MANIFEST.MF缺少Main-Class定义。需重新打包并指定入口类。 -
版本不兼容:
使用-version确认 Java 版本与 JAR 编译版本匹配。例如,编译为 Java 11 的 JAR 不能在 Java 8 中运行。 -
权限问题:
在 Linux/macOS 系统下,确保 JAR 文件有执行权限:chmod +x app.jar
其他注意事项
- 使用
-verbose参数可输出详细类加载信息,辅助调试。 - 通过
-jar运行时,-cp参数会被忽略,依赖项需在MANIFEST.MF中声明。 - 如需调试,添加 JVM 参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005启用远程调试。






