r/javahelp • u/Born-Ad4658 • 8d 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.
1
u/KillerCodeMonky 7d ago
It's highly likely that the path being specified by
imsFNmis not properly resolving to the resource. You are using the version of this method provided byClassinstead ofClassLoader. That version of the method has extra processing that occurs on the path.What is the value of
IMAGE_DIR? I will be able to help you more once I know that.