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