Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Friday, April 1, 2016

Loading a properties file from Java package

Loading a properties file from Java package


I need to read a properties files that's buried in my package structure in com.al.common.email.templates.

I've tried everything and I can't figure it out.

In the end, my code will be running in a servlet container, but I don't want to depend on the container for anything. I write JUnit test cases and it needs to work in both.

Answer by Joachim Sauer for Loading a properties file from Java package


When loading the Properties from a Class in the package com.al.common.email.templates you can use

Properties prop = new Properties();  InputStream in = getClass().getResourceAsStream("foo.properties");  prop.load(in);  in.close();  

(Add all the necessary exception handling).

If your class is not in that package, you need to aquire the InputStream slightly differently:

InputStream in =    getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");  

Relative paths (those without a leading '/') in getResource()/getResourceAsStream() mean that the resource will be searched relative to the directory which represents the package the class is in.

Using java.lang.String.class.getResource("foo.txt") would search for the (inexistent) file /java/lang/String/foo.txt on the classpath.

Using an absolute path (one that starts with '/') means that the current package is ignored.

Answer by Chris Kimpton for Loading a properties file from Java package


Assuming your using the Properties class, via its load method, and I guess you are using the ClassLoader getResourceAsStream to get the input stream.

How are you passing in the name, it seems it should be in this form: /com/al/common/email/templates/foo.properties

Answer by cobra libre for Loading a properties file from Java package


To add to Joachim Sauer's answer, if you ever need to do this in a static context, you can do something like the following:

static {    Properties prop = new Properties();    InputStream in = CurrentClassName.class.getResourceAsStream("foo.properties");    prop.load(in);    in.close()  }  

(Exception handling elided, as before.)

Answer by user897493 for Loading a properties file from Java package


public class Test{      static {      loadProperties();  }     static Properties prop;     private static void loadProperties() {      prop = new Properties();      InputStream in = Test.class              .getResourceAsStream("test.properties");      try {          prop.load(in);          in.close();      } catch (IOException e) {          e.printStackTrace();      }    }  

Answer by Vicky for Loading a properties file from Java package


public class ReadPropertyDemo {      public static void main(String[] args) {          Properties properties = new Properties();            try {              properties.load(new FileInputStream(                      "com/technicalkeeda/demo/application.properties"));              System.out.println("Domain :- " + properties.getProperty("domain"));              System.out.println("Website Age :- "                      + properties.getProperty("website_age"));              System.out.println("Founder :- " + properties.getProperty("founder"));                // Display all the values in the form of key value              for (String key : properties.stringPropertyNames()) {                  String value = properties.getProperty(key);                  System.out.println("Key:- " + key + "Value:- " + value);              }            } catch (IOException e) {              System.out.println("Exception Occurred" + e.getMessage());          }        }  }  

Find Complete example Complete Example

Answer by Kuldeep Sharma for Loading a properties file from Java package


When loading the Property file from a Class TestLoadPropertyFile.java in the package general.properties

Case 1: If loading property file using classLoader like

InputStream inputStream = TestLoadProperties.class.getClassLoader()                            .getResourceAsStream("A.config");  properties.load(inputStream);  

In this case Property file must be in the root/src directory for successfully loading

Case 2: If loading property file without using classLoader like

InputStream inputStream = getClass().getResourceAsStream("A.config");  properties.load(inputStream);  

In this case the property file must be in the same directory where the class TestLoadPropertyFile.class is for successfully loading.

Answer by Prithvish Mukherjee for Loading a properties file from Java package


use the below code please :

      Properties p = new Properties();       StringBuffer path = new StringBuffer("com/al/common/email/templates/");      path.append("foo.properties");      InputStream fs = getClass().getClassLoader()                                      .getResourceAsStream(path.toString());

if(fs == null){ System.err.println("Unable to load the properties file"); } else{ try{ p.load(fs); } catch (IOException e) { e.printStackTrace(); } }


Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.