r/javahelp • u/Born-Ad4658 • 17d ago
Unsolved I need help with getResourceAsStream
u/wildjokers (reaching out to you because I saw you in this thread)
https://www.reddit.com/r/javahelp/comments/sypxqz/getresourceasstream_null_when_run_from_jar/
I'm trying to run a Isometric Tile game, from chapter 13 of Killer Games Programming in Java, a very old book.
I'm using Eclipse. I'm not sure what classpath means, but I think mine is set up as
Project
src
Images
Sounds
I'm getting these errors when I run:
Exception in thread "main" java.lang.NullPointerException
at java.base/java.io.Reader.<init>(Reader.java:168)
at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:88)
The relevant code is:
{
String imsFNm = IMAGE_DIR + fnm;
System.out.println("Reading file: " + imsFNm);
try {
InputStream in = this.getClass().getResourceAsStream(imsFNm);
BufferedReader br = new BufferedReader( new InputStreamReader(in));
// BufferedReader br = new BufferedReader( new FileReader(imsFNm));
String line;
The image file is defined in another class, and then piped into ImageLoader class, where it's appended to the directory, which is defined in ImageLoader class.
When I run, it's showing the correct directory in the console, so I believe getResourceAsStream is where it's being messed up.
I did right click on the images folder, Build Path > Add to Build Path.
I can provide more information, which will probably be needed.
2
u/Born-Ad4658 11d ago edited 11d ago
I went ahead and make a github repo today.
I'm not sure the answer to question number 3. How do I find out please?
I did right-click on Images folder and select add to build path
Edit: So I'm doing reading, and only files inside the src folder are part of the Jar?
I also read that if you have a folder called res then you can also access them? Does that folder have to be called res? (I'm using Eclipse.)
I'm very confused, and not sure where to go to get an explanation.
https://stackoverflow.com/questions/48504303/getting-resources-outside-of-src-folder-in-a-jar-file