Spring Boot - Loading application property files from Current Directory

[Last Updated: Jul 13, 2017]

In this example, we will learn how to load Spring Boot application property files from 'current directory' or '/config subdirectory of the current directory' (as stated in spring boot ref doc).

Here 'current directory' refers to the location where we execute the application. In this example, we will run the application via spring boot maven plugin. We will also run the executable application jar. Running from an IDE does not work, because an IDE cannot copy (or load) the properties files to the location where we intend to execute our jar.

Writing a simple Boot application

public class ExampleMain {
    MyBean myBean() {
        return new MyBean();

    public static void main(String[] args) throws InterruptedException {
        SpringApplication bootApp = new SpringApplication(ExampleMain.class);
        ConfigurableApplicationContext context =;
        MyBean myBean = context.getBean(MyBean.class);

    private static class MyBean {

        private String appTitle;

        public void startApplication() {
            System.out.printf("-- in MyBean app title: %s --%n", appTitle);

We are going to put following property file in the maven root location (where the pom.xml file is).

app.title=My Spring Application

Running application via Boot maven plugin

Running the exploded application via Boot maven plugin:

mvn -q spring-boot:run


d:\example-projects\spring-boot\boot-current-directory-prop-file>mvn -q spring-boot:run
-- in MyBean app title: My Spring Application --

Running executable jar

Packaging the application

mvn -q clean package spring-boot:repackage


d:\example-projects\spring-boot\boot-current-directory-prop-file>mvn -q clean package spring-boot:repackage

Placing the property file at 'current directory' location

We need to place the where we are going to run the executable jar. So we are going to place it just beside the executable jar (in the maven target directory):

copy target\


d:\example-projects\spring-boot\boot-current-directory-prop-file>copy target\
1 file(s) copied.

Executing the jar

java -jar boot-current-directory-prop-file-1.0-SNAPSHOT.jar
D:\example-projects\spring-boot\boot-current-directory-prop-file>cd target

 Volume in drive D is Data
 Volume Serial Number is 68F9-EDFA

 Directory of D:\example-projects\spring-boot\boot-current-directory-prop-file\target

07/12/2017  10:48 PM    <DIR>          .
07/12/2017  10:48 PM    <DIR>          ..
07/06/2017  07:26 PM                31
07/12/2017  10:41 PM         6,651,337 boot-current-directory-prop-file-1.0-SNAPSHOT.jar
07/12/2017  10:41 PM             4,428 boot-current-directory-prop-file-1.0-SNAPSHOT.jar.original
07/12/2017  10:41 PM    <DIR>          classes
07/12/2017  10:41 PM    <DIR>          generated-sources
07/12/2017  10:41 PM    <DIR>          maven-archiver
07/12/2017  10:41 PM    <DIR>          maven-status
               3 File(s)      6,655,796 bytes
               6 Dir(s)  60,773,568,512 bytes free

D:\example-projects\spring-boot\boot-current-directory-prop-file\target>java -jar boot-current-directory-prop-file-1.0-SNAPSHOT.jar
-- in MyBean app title: My Spring Application --


This should also work if we place the file in config/ directory in both cases.

Example Project

Dependencies and Technologies Used:

  • Spring Boot 1.5.4.RELEASE
    Corresponding Spring Version 4.3.9.RELEASE
  • spring-boot-starter : Core starter, including auto-configuration support, logging and YAML.
  • JDK 1.8
  • Maven 3.3.9

Boot Setting Active Profile Select All Download
  • boot-current-directory-prop-file
    • src
      • main
        • java
          • com
            • logicbig
              • example

    See Also