我刚刚开始了一个新的游戏项目,我想通过阅读文件创建世界。
在Eclipse中,一切都很好,文件已成功加载。正在加载使用的图像。
但是如果我编译项目并执行.jar
图像仍然有效但找不到文件。
我使用类路径加载图像:
ImageIO.read(SpriteSheet.class.getResourceAsStream("..."));
和使用路径的文件:
new File("...")
他们都在同一个文件夹中,我现在不知道为什么这不起作用,因为 在Eclipse中,一切工作正常,但在编译后它不再起作用。
答案 0 :(得分:1)
假设您使用的是相对路径,
使用getResoureAsStream
时,您可以在类路径中加载任何文件。
但是当您使用new File
时,您的文件必须位于当前工作目录或操作系统的路径环境变量中定义的任何文件夹中(不一定是您的类路径)。
您的Eclipse可能能够获取该文件,因为它正在从文件所在的位置执行您的程序。您无法执行相同的操作,因为您正在从其他地方执行该程序。