All but ONE image won't paint when project is jared

Everytime I put my Game I’m making into a jar every single Image loads except for the map, I know it’s in the correct case and everything it just won’t load, someone take a look at my code and tell me what I’m doing wrong in this?

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;


public class map {

	Image map;
	String mp;
	public static int x = 0;
	public static int y = 0;
	
	public map(String mp) {
		this.mp = mp;
		map = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource(mp));
	}
	
	public void paint(Graphics g) {
		g.drawImage(map, x, y, null);
	}
}

then I make a new Object with it

public static map map = new map("images/Map2.png");

then later…

map.paint(g);

What do I have to do to make it paint?? I’ve looked all around the web and the question never gets answered

are you absolutely positive that your file name is “exactly” the same as what your are attempting to load? i.e JAR entries are case sensitive

doesn’t getImage() go on to do what it’s supposed to without locking the flow of the program? Are you sure the image is fully loaded before using it?

Well I fixed the problem, I split the image into 4 pieces but now I can only load 3 of the 4 pieces of map, once I load 3 of them the 4th won’t paint at all

new map class:

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;


public class map extends Thread {

	Image map1;
	Image map2;
	Image map3;
	Image map4;
	String mp;
	Boolean cleaned = false;
	public static int x = 0;
	public static int y = 0;
	
	public map() {
		this.mp = mp;
		map1 = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("map/MapPiece1.jpeg"));
		map2 = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("map/MapPiece2.jpeg"));
		map3 = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("map/MapPiece3.jpeg"));
		map4 = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("map/MapPiece4.jpeg"));
	}
	
	public void paint(final Graphics g) {
		Runnable t = new Runnable() {
			public void run() {
		if(thing.p.realX < 4200 && thing.p.realY < 4200) {
		g.drawImage(map1, x, y, null);
		} else {
		}
		if(thing.p.realX > 3550 && thing.p.realY < 4150) { 
		g.drawImage(map2, x+4001, y-1, null);
		} else {
		}
		if(thing.p.realY > 3800 && thing.p.realX < 4200) { 
		g.drawImage(map3, x, y+4001, null);
		}  else {
		} 
		if(thing.p.realX > 3800 && thing.p.realY > 3800 ) {
		g.drawImage(map4, x+4001, y+4001, null);
		} else {
		}
			}
		};
		t.run();
	}
}

If its a loading issue then a MediaTracker will fix. Try googling “Java MediaTracker” for code examples.

Try using a blocking solution like ImageIO.read(getClass().getResourceAsStream(“file/path.jpg”));