Package org.springframework.boot.loader
Class PropertiesLauncher
- java.lang.Object
- org.springframework.boot.loader.Launcher
- org.springframework.boot.loader.PropertiesLauncher
public class PropertiesLauncher extends Launcher
Launcher
for archives with user-configured classpath and main class via a properties file. This model is often more flexible and more amenable to creating well-behaved OS-level services than a model based on executable jars.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 propertyloader.config.name
(e.g.-Dloader.config.name=foo
will look forfoo.properties
. If that file doesn't exist then triesloader.config.location
(with allowed prefixesclasspath:
andfile:
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
.
Field Summary
Fields Modifier and Type Field Description static String
ARGS
Properties key for default command line arguments.static String
CONFIG_LOCATION
Properties key for config file location (including optional classpath:, file: or URL prefix).static String
CONFIG_NAME
Properties key for name of external configuration file (excluding suffix).static String
HOME
Properties key for home directory.static String
MAIN
Properties key for main class.static String
PATH
Properties key for classpath entries (directories possibly containing jars or jars).static String
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).
Constructor Summary
Constructors Constructor Description PropertiesLauncher()
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ClassLoader
createClassLoader(List<Archive> archives)
Create a classloader for the specified archives.protected String[]
getArgs(String... args)
protected List<Archive>
getClassPathArchives()
Returns the archives that will be used to construct the class path.protected File
getHomeDirectory()
protected String
getMainClass()
Returns the main class that should be launched.static void
main(String[] args)
static String
toCamelCase(CharSequence string)
Methods inherited from class org.springframework.boot.loader.Launcher
createArchive, createClassLoader, createMainMethodRunner, launch, launch
Field Detail
MAIN
public static final String MAIN
Properties key for main class. As a manifest entry can also be specified asStart-Class
.- See Also:
- Constant Field Values
PATH
public static final String 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:
- Constant Field Values
HOME
public static final String 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:
- Constant Field Values
ARGS
public static final String ARGS
Properties key for default command line arguments. These arguments (if present) are prepended to the main method arguments before launching.- See Also:
- Constant Field Values
CONFIG_NAME
public static final String CONFIG_NAME
Properties key for name of external configuration file (excluding suffix). Defaults to "application". Ignored ifloader config location
is provided instead.- See Also:
- Constant Field Values
CONFIG_LOCATION
public static final String CONFIG_LOCATION
Properties key for config file location (including optional classpath:, file: or URL prefix).- See Also:
- Constant Field Values
SET_SYSTEM_PROPERTIES
public static final String 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:
- Constant Field Values
Constructor Detail
PropertiesLauncher
public PropertiesLauncher()
Method Detail
getHomeDirectory
protected File getHomeDirectory()
getMainClass
protected String getMainClass() throws Exception
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
createClassLoader
protected ClassLoader createClassLoader(List<Archive> archives) throws Exception
Description copied from class:Launcher
Create a classloader for the specified archives.- Overrides:
createClassLoader
in classLauncher
- Parameters:
archives
- the archives- Returns:
- the classloader
- Throws:
Exception
- if the classloader cannot be created
getClassPathArchives
protected List<Archive> getClassPathArchives() throws Exception
Description copied from class:Launcher
Returns the archives that will be used to construct the class path.- Specified by:
getClassPathArchives
in classLauncher
- Returns:
- the class path archives
- Throws:
Exception
- if the class path archives cannot be obtained
toCamelCase
public static String toCamelCase(CharSequence string)