My Project Setup
I have the following project setup:
\\program.jar
\\images\\logo.png
In my code, I reference th
As Nelson mentioned, package them with your JAR (just copy them alongside your .class files), then you can find them via a simple this.getClass().getClassLoder().getResource("images/foo.png")
.
Resources have to be in the class path(s). You may try one of these:
program.jar
.APP_HOME
directory, e.g. MAVEN_HOME
, register that and refer to your files as File
instead - $APP_HOME/the-file.ext
(with System.getenv()
).You should really include your resources in your JAR.
Failing that, you can parse the absolute path out of the Main class resource. Assuming your Main class is actually called "Main":
Main.class.getResource("Main.class").getPath();
What I would do, if possible, is package your images in with your Jar.
That way you don't have to worry about where your Jar is launched from.
You would then need to load images similar to the following:
InputStream stream = this.getClass().getClassLoader().
getResourceAsStream("/images/logo.png");
You need to add a parameter which describes your class path. Should look something like
java -cp c:\projects\program_dir\bin -jar program.jar
this will put your jar and image on the class path and it will load successfully.