Java游戏只能在eclipse中加载图像

Java游戏只能在eclipse中加载图像,java,bufferedimage,2d-games,game-development,Java,Bufferedimage,2d Games,Game Development,我是游戏开发新手,目前正在从头开始制作一个简单的java游戏。一切都是在EclipseNeon3.0中构建的,游戏在其中运行良好。然而,当我将java项目导出到一个可执行的jar文件时,每当它从.jar中的res文件加载图像时,它只是压碎并没有给出响应。我确信这是图像加载的问题,因为drawRect()仍然可以正常工作 这就是我在游戏中加载图像的方式 //in my ImageLoader class public static BufferedImage load(String path)

我是游戏开发新手,目前正在从头开始制作一个简单的java游戏。一切都是在EclipseNeon3.0中构建的,游戏在其中运行良好。然而,当我将java项目导出到一个可执行的jar文件时,每当它从.jar中的res文件加载图像时,它只是压碎并没有给出响应。我确信这是图像加载的问题,因为drawRect()仍然可以正常工作

这就是我在游戏中加载图像的方式

//in my ImageLoader class 

public static BufferedImage load(String path){
try{
            return ImageIO.read(ImageLoader.class.getResource(path));
    }catch(IOException e){
               e.printStackTrace();
    }
}
在我的资产类别中,我为将要使用的每个图像声明变量

public static BufferedImage mobs = 
ImageLoader.load(/texture/mobs.png); 
并在其他类中通过

g.drawImage(Asset.mobs , ...)
所有png文件都放在res文件下的纹理文件中,该文件与我的src文件处于同一级别,并添加到类文件夹(库)中


我在互联网上搜索解决方案已经一个多星期了,但仍然没有任何进展。我真的很有兴趣做我自己的游戏,我真的需要你的帮助!!!对于任何不整洁的情况,我深表歉意,因为这是我第一次询问堆栈溢出问题,但我仍然不习惯。提前感谢。

检查.jar文件的内容。它里面有
/text/mods.png
条目吗?@VGR是的,我用7-zip打开它,看到里面有一个纹理文件夹和png。Res消失了,但很可能
static
方法获取了错误的类装入器。删除对
static
的所有引用,并将
ImageLoader.class.getResource(path)
更改为
this.getClass().getResource(path)