Java 有一个Jpanel在从eclipse运行时打开,并在导出为可执行jar后打开';t打开

Java 有一个Jpanel在从eclipse运行时打开,并在导出为可执行jar后打开';t打开,java,Java,我正在创建一个名为lines of Actions的游戏,在导出到可执行jar文件时遇到了一个问题 当我按下“两名玩家”按钮时,该面板应显示 当我从eclipse运行它时,它确实会显示,但当我运行可执行jar文件时,它不会显示 注意:图像位于图像源文件夹中 我用这个方法得到了一个图像: private ImageIcon image(String s) { return new ImageIcon(getClass().getClassLoader().getResource(s))

我正在创建一个名为lines of Actions的游戏,在导出到可执行jar文件时遇到了一个问题

当我按下“两名玩家”按钮时,该面板应显示

当我从eclipse运行它时,它确实会显示,但当我运行可执行jar文件时,它不会显示

注意:图像位于图像源文件夹中 我用这个方法得到了一个图像:

private ImageIcon image(String s) {
    return new ImageIcon(getClass().getClassLoader().getResource(s));
}
创建Jlable时:

new Jlabel(image("example.png"));
项目是这样的:


从控制台运行jar
java-jarfilename.jar
。您的某些资源(图像)很可能为空

您可以在控制台中看到错误和警告,单击jar不会让您这样做

对于您下面的评论:尝试加载JPanel的图像,方法与加载主背景图像(用于标题/选项菜单)的方法相同,我们知道这已经可以工作了。您需要一个
inputstream
来在可执行文件
.jar
中加载资源

是用于从可执行文件中加载资源的内容。为了获得良好的实践,请始终使用此选项,即使在IDE(eclipse)中,因为导出也会更容易

对于您的问题编辑:
getResource
返回一个
URL
,在本例中该URL恰好为
null
。尝试使用
image(“example.png”)。您编写了
.ong
作为文件扩展名,如果您的意思是
.png
更改它,您的代码应该可以工作:)


如果你不想写
.ong
,那么试着在你的文件名中添加反斜杠,比如:
图像(“/example.png”)您可以在上面的链接中阅读原因。

那么您希望我们阅读您的想法以找到您的代码吗?没有,但我认为在导出时可能会有问题。您是如何导出的?同样,我们无法神奇地知道如何操作。我认为你的电脑不太喜欢这个游戏,并且拒绝执行它。请确保在构建jar文件时包含图像。“你可以在控制台中看到错误和警告…”。只要代码没有捕获并忽略异常,就可以忽略异常+1是的,有一个NullPointerException你能告诉我在我的代码中要修改什么才能正确加载图像吗你应该在你的问题中添加异常和堆栈跟踪的相关部分问题的第一个问题是:有一个名为“Back.png”的图像,我称它为“Back.png”运行eclipse时,它似乎不区分大小写,从可执行jar运行时,它区分大小写,我不知道为什么:D.jar文件区分大小写