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