Class PropertiesLauncher
java.lang.Object
org.springframework.boot.loader.launch.Launcher
org.springframework.boot.loader.launch.PropertiesLauncher
Launcher
for archives with user-configured classpath and main class through a
properties file.
Looks in various places for a properties file to extract loader settings, defaulting to
loader.properties
either on the current classpath or in the current working
directory. The name of the properties file can be changed by setting a System property
loader.config.name
(e.g. -Dloader.config.name=my
will look for
my.properties
. If that file doesn't exist then tries
loader.config.location
(with allowed prefixes classpath:
and
file:
or any valid URL). Once that file is located turns it into Properties and
extracts optional values (which can also be provided overridden as System properties in
case the file doesn't exist):
loader.path
: a comma-separated list of directories (containing file resources and/or nested archives in *.jar or *.zip or archives) or archives to append to the classpath.BOOT-INF/classes,BOOT-INF/lib
in the application archive are always usedloader.main
: the main method to delegate execution to once the class loader is set up. No default, but will fall back to looking for aStart-Class
in aMANIFEST.MF
, if there is one in${loader.home}/META-INF
.
- Since:
- 3.2.0
- Author:
- Dave Syer, Janne Valkealahti, Andy Wilkinson, Phillip Webb, Scott Frederick
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Properties key for default command line arguments.static final String
Properties key for config file location (including optional classpath:, file: or URL prefix).static final String
Properties key for name of external configuration file (excluding suffix).static final String
Properties key for home directory.static final String
Properties key for main class.static final String
Properties key for classpath entries (directories possibly containing jars or jars).static final String
Properties key for boolean flag (default false) which, if set, will cause the external configuration properties to be copied to System properties (assuming that is allowed by Java security).Fields inherited from class org.springframework.boot.loader.launch.Launcher
BOOT_CLASSPATH_INDEX_ATTRIBUTE, classPathIndex, DEFAULT_CLASSPATH_INDEX_FILE_NAME
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected ClassLoader
createClassLoader
(Collection<URL> urls) Create a classloader for the specified archives.protected Archive
Return the archive being launched ornull
if there is no archive.protected String[]
Returns the archives that will be used to construct the class path.protected File
protected String
Returns the main class that should be launched.static void
static String
toCamelCase
(CharSequence string) Methods inherited from class org.springframework.boot.loader.launch.Launcher
getEntryPathPrefix, isExploded, isIncludedOnClassPath, isIncludedOnClassPathAndNotIndexed, isLibraryFileOrClassesDirectory, launch, launch
-
Field Details
-
MAIN
Properties key for main class. As a manifest entry can also be specified asStart-Class
.- See Also:
-
PATH
Properties key for classpath entries (directories possibly containing jars or jars). Multiple entries can be specified using a comma-separated list.BOOT-INF/classes,BOOT-INF/lib
in the application archive are always used.- See Also:
-
HOME
Properties key for home directory. This is the location of external configuration if not on classpath, and also the base path for any relative paths in theloader path
. Defaults to current working directory (${user.dir}
).- See Also:
-
ARGS
Properties key for default command line arguments. These arguments (if present) are prepended to the main method arguments before launching.- See Also:
-
CONFIG_NAME
Properties key for name of external configuration file (excluding suffix). Defaults to "application". Ignored ifloader config location
is provided instead.- See Also:
-
CONFIG_LOCATION
Properties key for config file location (including optional classpath:, file: or URL prefix).- See Also:
-
SET_SYSTEM_PROPERTIES
Properties key for boolean flag (default false) which, if set, will cause the external configuration properties to be copied to System properties (assuming that is allowed by Java security).- See Also:
-
-
Constructor Details
-
PropertiesLauncher
- Throws:
Exception
-
-
Method Details
-
getHomeDirectory
- Throws:
Exception
-
createClassLoader
Description copied from class:Launcher
Create a classloader for the specified archives.- Overrides:
createClassLoader
in classLauncher
- Parameters:
urls
- the classpath URLs- Returns:
- the classloader
- Throws:
Exception
- if the classloader cannot be created
-
getArchive
Description copied from class:Launcher
Return the archive being launched ornull
if there is no archive.- Specified by:
getArchive
in classLauncher
- Returns:
- the launched archive
-
getMainClass
Description copied from class:Launcher
Returns the main class that should be launched.- Specified by:
getMainClass
in classLauncher
- Returns:
- the name of the main class
- Throws:
Exception
- if the main class cannot be obtained
-
getArgs
- Throws:
Exception
-
toCamelCase
-
getClassPathUrls
Description copied from class:Launcher
Returns the archives that will be used to construct the class path.- Specified by:
getClassPathUrls
in classLauncher
- Returns:
- the class path archives
- Throws:
Exception
- if the class path archives cannot be obtained
-
main
- Throws:
Exception
-