Solved

Is it possible to read a properties file from a jar?

Posted on 2014-12-24
3
236 Views
Last Modified: 2014-12-28
Hello,

I was just wondering if it was possible to read a properties file that was bundled with another jar file?

Appreciate any help or alternatives! (aside from including the properties file here... lol)
0
Comment
Question by:Errang Genevre
3 Comments
 
LVL 26

Assisted Solution

by:dpearson
dpearson earned 250 total points
ID: 40517320
Yes that should be possible.

It's been a while since I wrote any code like this (it always seems rather clumsy how you get resources and class loaders) but I think it's something like this sequence.  (There may be short cuts available to reduce the number of calls here - as I say it's been a while).

The basic idea is you get a class loader for the Jar file and then open a stream within the jar and read the properties file.

Along these lines (this code is just approximate - you'll likely need to tweak it):

	private static ClassLoader getClassLoader(File confFolder) throws Exception {
		ClassLoader loader = MyClass.class.getClassLoader();

		if (confFolder != null) {
			URL confURL = confFolder.toURI().toURL() ;
			URLClassLoader cls = new URLClassLoader(new URL[]{ confURL }, loader) ;
			loader = cls ;
		}
		
		return loader ;
	}

        // ConfFolder in your case should point to the jar file
        // propertiesFile would be the path within the jar
        public static Properties loadPropertiesFile(File confFolder, File propertiesFile) throws Exception {
		ClassLoader cls = getClassLoader(confFolder) ;
		InputStream input = cls.getResourceAsStream(propertiesFile); 
		Properties properties = new Properties() ;
		properties.load(input) ;
                return properties ;
      }

Open in new window


Hope that helps,

Doug
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 250 total points
ID: 40517471
InputStream in = getClass().getResourceAsStream("/p.properties");

Open in new window

is really all you need. The path is package-relative
0
 

Author Closing Comment

by:Errang Genevre
ID: 40520679
Thanks!
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Change the background and font colors in Notepad++ 5 80
difference of if loops 23 49
Problem to refer to value 8 45
Cygwin - GNU GPL License 1 23
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

774 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question