跳到主要内容
版本:3.5.10

PropertiesLauncher 功能

QWen Max 中英对照 PropertiesLauncher Features

PropertiesLauncher 具有一些特殊功能,可以通过外部属性(系统属性、环境变量、清单条目或 loader.properties)启用。下表描述了这些属性:

KeyPurpose
loader.path以逗号分隔的类路径(Classpath),例如 lib,${HOME}/app/lib。排在前面的条目优先级更高,类似于 javac 命令行中的常规 -classpath
loader.home用于解析 loader.path 中的相对路径。例如,若 loader.path=lib,则 ${loader.home}/lib 是一个类路径位置(包括该目录下的所有 jar 文件)。此属性还用于定位 loader.properties 文件,如下例所示:[/opt/app](file:///opt/app)。默认值为 ${user.dir}
loader.args主方法(main method)的默认参数(以空格分隔)。
loader.main要启动的主类名称(例如 com.app.Application)。
loader.config.name属性文件的名称(例如 launcher)。默认值为 loader
loader.config.location属性文件的路径(例如 classpath:loader.properties)。默认值为 loader.properties
loader.system布尔标志,用于指示是否应将所有属性添加到系统属性(System properties)中。默认值为 false

当指定为环境变量或清单条目时,应使用以下名称:

KeyManifest entryEnvironment variable
loader.pathLoader-PathLOADER_PATH
loader.homeLoader-HomeLOADER_HOME
loader.argsLoader-ArgsLOADER_ARGS
loader.mainStart-ClassLOADER_MAIN
loader.config.locationLoader-Config-LocationLOADER_CONFIG_LOCATION
loader.systemLoader-SystemLOADER_SYSTEM
提示

构建插件在构建 uber jar 时会自动将 Main-Class 属性移动到 Start-Class。如果你使用该功能,请通过 Main-Class 属性指定要启动的类名,并省略 Start-Class

使用 PropertiesLauncher 时,需遵循以下规则:

  • loader.properties 会依次在 loader.home、classpath 根目录以及 classpath:/BOOT-INF/classes 中查找。使用第一个找到该名称文件的位置。

  • 只有在未指定 loader.config.location 时,loader.home 才表示一个额外属性文件(用于覆盖默认值)所在的目录位置。

  • loader.path 可以包含目录(递归扫描其中的 jar 和 zip 文件)、归档文件路径、归档文件内用于扫描 jar 文件的目录(例如 dependencies.jar!/lib),或通配符模式(遵循 JVM 默认行为)。归档文件路径可以相对于 loader.home,也可以通过 jar:file: 前缀指向文件系统中的任意位置。

  • loader.path(若为空)默认为 BOOT-INF/lib(表示本地目录,或从归档文件运行时的嵌套目录)。因此,在未提供额外配置的情况下,PropertiesLauncher 的行为与 JarLauncher 相同。

  • loader.path 不能用于配置 loader.properties 的位置(搜索 loader.properties 所用的 classpath 是启动 PropertiesLauncher 时的 JVM classpath)。

  • 在使用所有值之前,会从系统属性、环境变量以及属性文件本身进行占位符替换。

  • 属性的搜索顺序(在多处查找有意义的情况下)为:环境变量、系统属性、loader.properties、解压后的归档清单(exploded archive manifest)和归档清单(archive manifest)。