PropertiesLauncher 功能

PropertiesLauncher 有一些特殊功能,可以透過外部屬性(系統屬性、環境變數、清單條目或 loader.properties)啟用。下表描述了這些屬性

目的

loader.path

逗號分隔的 Classpath,例如 lib,${HOME}/app/lib。較早的條目具有優先權,就像 javac 命令列上的常規 -classpath 一樣。

loader.home

用於解析 loader.path 中的相對路徑。例如,給定 loader.path=lib,則 ${loader.home}/lib 是一個 classpath 位置(以及該目錄中的所有 jar 檔案)。此屬性還用於定位 loader.properties 檔案,如以下示例 /opt/app。它預設為 ${user.dir}

loader.args

主方法的預設引數(以空格分隔)。

loader.main

要啟動的主類的名稱(例如,com.app.Application)。

loader.config.name

屬性檔案的名稱(例如,launcher)。它預設為 loader

loader.config.location

屬性檔案的路徑(例如,classpath:loader.properties)。它預設為 loader.properties

loader.system

布林標誌,指示所有屬性都應新增到系統屬性中。它預設為 false

當指定為環境變數或清單條目時,應使用以下名稱

清單條目 環境變數

loader.path

Loader-Path

LOADER_PATH

loader.home

Loader-Home

LOADER_HOME

loader.args

Loader-Args

LOADER_ARGS

loader.main

Start-Class

LOADER_MAIN

loader.config.location

Loader-Config-Location

LOADER_CONFIG_LOCATION

loader.system

Loader-System

LOADER_SYSTEM

構建外掛在構建 uber jar 時會自動將 Main-Class 屬性移動到 Start-Class。如果使用該功能,請使用 Main-Class 屬性指定要啟動的類名,並省略 Start-Class

以下規則適用於使用 PropertiesLauncher

  • loader.propertiesloader.home 中搜索,然後是 classpath 的根目錄,然後是 classpath:/BOOT-INF/classes。使用第一個存在該名稱檔案的位置。

  • loader.home 是附加屬性檔案(覆蓋預設值)的目錄位置,僅當未指定 loader.config.location 時。

  • loader.path 可以包含目錄(遞迴掃描 jar 和 zip 檔案),存檔路徑,掃描 jar 檔案的存檔內的目錄(例如,dependencies.jar!/lib),或萬用字元模式(對於預設的 JVM 行為)。存檔路徑可以是相對於 loader.home 的,也可以是檔案系統中帶有 jar:file: 字首的任何位置。

  • loader.path(如果為空)預設為 BOOT-INF/lib(表示本地目錄或如果從存檔執行則為巢狀目錄)。因此,當未提供額外配置時,PropertiesLauncher 的行為與 JarLauncher 相同。

  • loader.path 不能用於配置 loader.properties 的位置(當 PropertiesLauncher 啟動時,用於搜尋後者的 classpath 是 JVM classpath)。

  • 在使用所有值之前,會從系統和環境變數以及屬性檔案本身進行佔位符替換。

  • 屬性的搜尋順序(在多個地方查詢有意義時)是環境變數、系統屬性、loader.properties、解壓後的存檔清單和存檔清單。

© . This site is unofficial and not affiliated with VMware.