如何查看 Java JAR 文件支持的启动参数
摘要:本文介绍了如何通过命令行、配置文件和反编译等方式,查看一个 Java JAR 文件(如 bi-host.jar)支持的启动参数。重点包括帮助信息、配置文件分析、JVM 参数以及 Spring Boot 特有的参数。
一、JAR 启动命令的结构分析
你当前的命令是:
java -Dfile.encoding=UTF-8 -Dloader.path=./bin/lib -jar ./bin/bi-host.jar --server.port=8081这个命令可以分为三类参数:
| 类型 | 示例 | 说明 | 
|---|---|---|
| JVM 参数(以 `-D` 开头) | -Dfile.encoding=UTF-8, -Dloader.path=./bin/lib | 设置 JVM 系统属性 | 
| Java/JAR 启动指令 | -jar ./bin/bi-host.jar | 指定运行的主 JAR 文件 | 
| 应用参数(传给 main 方法的参数) | --server.port=8081 | Spring Boot 风格的配置参数 | 
二、如何查看还有哪些可用参数?
方法 1:查看帮助文档(最直接)
大多数 Spring Boot 打包的 JAR 都支持以下帮助参数:
java -jar bi-host.jar --help或者:
java -jar bi-host.jar -h或者:
java -jar bi-host.jar help这可能会输出所有支持的命令行参数。
方法 2:查看配置文件(application.yml / application.properties)
Spring Boot 应用通常使用 `application.yml` 或 `application.properties` 文件定义默认配置。
你可以解压 JAR 包查看:
unzip -l bi-host.jar | grep application然后提取并查看:
unzip bi-host.jar 'BOOT-INF/classes/application*' -d temp/
cat temp/BOOT-INF/classes/application.yml在里面可以找到类似:
server:
  port: 8080
spring:
  datasource:
    url: ...这些都可以通过命令行覆盖,比如:
--server.port=8081
--spring.datasource.url=jdbc:mysql://...方法 3:查看源码或文档(如果有)
如果你有项目文档、README 或源码,通常会列出支持的启动参数。
特别是 `--server.port` 这种是 Spring Boot 内置的,常见参数包括:
| 参数 | 说明 | 
|---|---|
| --server.port=8081 | 设置服务端口 | 
| --spring.profiles.active=prod | 激活某个环境配置 | 
| --logging.level.root=DEBUG | 设置日志级别 | 
| --spring.config.location=... | 指定外部配置文件路径 | 
| --spring.application.name=myapp | 设置应用名(用于注册中心等) | 
方法 4:使用 `--debug` 启动,查看自动配置报告
java -jar bi-host.jar --debugSpring Boot 会输出自动配置的启用/禁用情况,间接反映支持的参数。
方法 5:反编译或查看 Main 类(高级)
如果完全没文档,可以反编译查看入口类:
# 查看主类
unzip -p bi-host.jar META-INF/MANIFEST.MF找到 `Main-Class`,比如可能是:
Main-Class: org.springframework.boot.loader.JarLauncher实际的应用主类可能在 `Start-Class`(Spring Boot 特有):
Start-Class: com.example.BiHostApplication然后你可以用反编译工具(如 JD-GUI)打开 JAR,查看 `BiHostApplication.java` 的 `main` 方法和 `@ConfigurationProperties` 类,找出所有可配置项。
方法 6:查看 JVM 系统属性 `-D` 支持的参数
你用了:
-Dfile.encoding=UTF-8
-Dloader.path=./bin/lib其中:
- `file.encoding`: 设置字符编码(推荐 UTF-8)
- `loader.path`: 是 Spring Boot `JarLauncher` 特有的,用于指定外部依赖 JAR 的路径(比如插件、额外 lib)
其他常见的 `-D` 参数:
| `-D` 参数 | 作用 | 
|---|---|
| -Dspring.config.location= | 外部配置文件路径 | 
| -Dlogging.config= | 外部日志配置文件(logback.xml) | 
| -Djava.io.tmpdir=/tmp | 设置临时目录 | 
| -Duser.timezone=GMT+8 | 设置时区 | 
三、常见可传入的参数总结(Spring Boot 类应用)
| 类型 | 参数示例 | 说明 | 
|---|---|---|
| 服务端口 | --server.port=8081 | 改变启动端口 | 
| 激活环境 | --spring.profiles.active=dev | 使用 dev 配置 | 
| 外部配置 | --spring.config.location=./config/application.yml | 指定配置文件 | 
| 日志级别 | --logging.level.com.example=DEBUG | 调整包的日志输出 | 
| JVM 内存 | -Xms512m -Xmx2g | 设置堆内存 | 
| 字符编码 | -Dfile.encoding=UTF-8 | 防止乱码 | 
| 时区 | -Duser.timezone=Asia/Shanghai | 避免时间错误 | 
| 外部依赖 | -Dloader.path=./lib | 加载外部 jar | 
四、建议操作顺序
- 运行 java -jar bi-host.jar --help看是否有帮助信息
- 解压 JAR,查看 application.yml或.properties
- 搜索项目文档或联系开发者
- 使用 --spring.profiles.active=切换环境
- 通过 --debug查看启动细节
      如果你愿意,可以把 unzip -p bi-host.jar META-INF/MANIFEST.MF 的输出贴出来,我可以帮你分析主类和可能的参数。