如何查看 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 --debug
Spring 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
的输出贴出来,我可以帮你分析主类和可能的参数。