Java程序编译成.jar时不工作

Java程序编译成.jar时不工作,java,eclipse,file-io,jar,Java,Eclipse,File Io,Jar,我正在制作一个游戏,我本来打算编译它发送给一个朋友,但我注意到我无法通过菜单,因为启动游戏的按钮不起作用。经过反复试验,我发现这是我的纹理导入。如果我不导入任何纹理,它就会工作,这只有在我将其编译成.jar之后才会发生,该游戏在eclipse中运行良好。这可能是什么原因造成的?我如何找到解决方案 这是我用来导入纹理的代码 private void textures() { try { texture = ImageIO.read(Resource.clas

我正在制作一个游戏,我本来打算编译它发送给一个朋友,但我注意到我无法通过菜单,因为启动游戏的按钮不起作用。经过反复试验,我发现这是我的纹理导入。如果我不导入任何纹理,它就会工作,这只有在我将其编译成.jar之后才会发生,该游戏在eclipse中运行良好。这可能是什么原因造成的?我如何找到解决方案

这是我用来导入纹理的代码

    private void textures()
{
    try
    {
        texture = ImageIO.read(Resource.class.getResource("/resources/textures.png"));
    } catch (IOException e)
    {
    }

    try
    {
        water = ImageIO.read(Resource.class.getResource("/resources/water.png"));
    } catch (IOException e)
    {
    }

    try
    {
        icon = ImageIO.read(Resource.class.getResource("/resources/icon.png"));
    } catch (IOException e)
    {
    }

    try
    {
        largeTexture = ImageIO.read(Resource.class.getResource("/resources/largeTextures.png"));
    } catch (IOException e)
    {
    }

    try
    {
        player = ImageIO.read(Resource.class.getResource("/resources/player.png"));
    } catch (IOException e)
    {
    }

运行程序时是否将jar文件添加到类路径?@GreenMatt我不明白你的意思,我只是导出一个可运行的jar文件并打开它,即使在我使用纹理时,它也对我有用。你是否将resource/*.png文件添加到jar中?
}catch(IOException e){}
Uggh。。当你的头陷在沙子里的时候,你正试图找出哪里出了问题。将形式为
catch(异常e){..
的代码更改为
catch(异常e){e.printStackTrace()//非常有用!
事实上,我会进一步采纳Andrew的建议,彻底消除
try/catch
块。拥有
try/catch
除了安抚编译器之外没有其他理由。最好声明你的函数
抛出了一个`IOException,并且如果找不到图片,你的程序就会崩溃(这样你就能知道出了什么问题,从而可以修复它!)。