Search code examples
javaconfigurationenvironment-variables

Regarding application.properties file and environment variable


Java successfully recognizes the path in my application.properties file when I have the path configured as below:

pathToInputFile=/kcs/data/incoming/ready/
pathToInputFileProcess=/kcs/data/incoming/work/

If I try using an environment variable, the Java program doesn't recognize the path.

(the environmental variable TOM_DATA is set as /kcs.)

pathToInputFile=${TOM_DATA}/data/incoming/ready/
pathToInputFileProcess=${TOM_DATA}/data/incoming/work/

Can I use an environment variable inside application.properties file?


Solution

  • You can put environment variables in your properties file, but Java will not automatically recognise them as environment variables and therefore will not resolve them.

    In order to do this you will have to parse the values and resolve any environment variables you find.

    You can get at environment variables from Java using various methods. For example: Map<String, String> env = System.getenv();

    There's a basic tutorial here: http://java.sun.com/docs/books/tutorial/essential/environment/env.html

    Hope that's of some help.