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 property loader.config.name (e.g. -Dloader.config.name=foo will look for foo.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 used
  • loader.main: the main method to delegate execution to once the class loader is set up. No default, but will fall back to looking for a Start-Class in a MANIFEST.MF, if there is one in ${loader.home}/META-INF.
Since:
1.0.0
Author:
Dave Syer, Janne Valkealahti, Andy Wilkinson
  • Field Details

    • MAIN

      public static final String MAIN
      Properties key for main class. As a manifest entry can also be specified as Start-Class.
      See Also:
    • 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:
    • 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 the loader path. Defaults to current working directory ( ${user.dir}).
      See Also:
    • 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:
    • CONFIG_NAME

      public static final String CONFIG_NAME
      Properties key for name of external configuration file (excluding suffix). Defaults to "application". Ignored if loader config location is provided instead.
      See Also:
    • CONFIG_LOCATION

      public static final String CONFIG_LOCATION
      Properties key for config file location (including optional classpath:, file: or URL prefix).
      See Also:
    • 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:
  • Constructor Details

    • PropertiesLauncher

      public PropertiesLauncher()
  • Method Details