views:

331

answers:

2

In my application.properties file if I have the path configured like below Java successfully recognizes the path.

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

If I have the below way using environment variable Java program doesn't recognize the path

Environmental variable TOM_DATA is set as /kcs

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

Can I use environment variable inside application.properties file?

+1  A: 

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.

Tom Duckering
+1  A: 

Have a look at Commons configuration

Or alternatively use relative paths in your properties file, and load the base directory via command line as a system property. That way the property files remain independent of where the application is actually deployed.

objects