java slick无法加载tmx tilemaps

java slick无法加载tmx tilemaps,java,slick2d,Java,Slick2d,我刚开始使用Slick2D,并了解了加载tilemap并显示它是多么简单。我尝试了许多示例中的至少十几个不同的tmx文件,以查看是否是实际文件被损坏。每次我遇到此错误时: Exception in thread "main" java.lang.RuntimeException: Resource not found: data/maps/desert.tmx at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(Res

我刚开始使用Slick2D,并了解了加载tilemap并显示它是多么简单。我尝试了许多示例中的至少十几个不同的tmx文件,以查看是否是实际文件被损坏。每次我遇到此错误时:

Exception in thread "main" java.lang.RuntimeException: Resource not found: data/maps/desert.tmx
    at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69)
    at org.newdawn.slick.tiled.TiledMap.<init>(TiledMap.java:101)
    at game.Game.init(Game.java:17)
    at game.Tunneler.initStatesList(Tunneler.java:37)
    at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164)
    at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:390)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
    at game.Tunneler.main(Tunneler.java:29)
我试着看看是否有其他人也有类似的问题,但没有发现任何问题。我可以加载其他文件,所以我不认为这是编译器的问题。我的菜单类可以加载图像并显示它们。此外,文件路径是正确的

如果您有任何可以帮助我解决此问题的指针,请告诉我。

这看起来像是“未找到文件”问题。它基本上是说它找不到您指定的文件(读:“resource”)。检查您的相对路径,
data/maps/desert.tmx
,确保它是正确的

如果这不起作用,请将相对路径替换为绝对路径(从文件系统的根目录开始),仅用于测试,然后查看是否有效。如果这确实有效,那么您的相对路径应该有效,但它只是没有正确指定。我看到的一个最常见的问题是在查找资源时没有打开几个文件夹。例如,正确的相对路径可能是
。/../data/maps/desert.tmx
,或者类似的路径。您需要确定代码从哪个文件夹执行(可能是
bin
文件夹?),并指定从那里开始的相对路径

package game;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
import org.newdawn.slick.tiled.TiledMap;

public class Game extends BasicGameState{
    private int stateID = -1;
    private TiledMap map = null;

    public Game(int stateID){
        this.stateID = stateID;
    }
    public void init(GameContainer container, StateBasedGame game) throws SlickException{
        map = new TiledMap("data/maps/desert.tmx","maps");//ERROR
    }
    public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException{
        //map.render(0,0);
    }
    public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException{
    }

    public int getID(){return stateID;}
}