gpt4 book ai didi

java - 尝试使用图像资源时出现 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 07:04:31 25 4
gpt4 key购买 nike

我用 Java 做了一个游戏。它在 Eclipse 中工作得很好。

我将其导出为可运行的 JAR。双击它的图标时,它不会打开。所以我尝试从命令行运行 JAR。

我在试图检索图像资源的一行代码中遇到了 NullPointerException 错误(正如我所说,它在 Eclipse 中运行良好)。这是发生错误的代码行:

ball = new ImageIcon(this.getClass().getResource("sprites/ball.PNG"));

我不知道出了什么问题。这是我的项目的结构:

enter image description here

有什么想法吗?我开始感到绝望。

非常感谢您的帮助。

编辑:我尝试在 sprites/ball.PNG 的开头添加一个 / 。没有帮助。还尝试将 PNG 更改为 png。也没用。

检查了 JAR 内部,图像在里面。我在 Windows 上。

这是堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init><Unknown Source>
at instPanel.<init><instPanel.java:17>
at Main.<init><Main.java:23>
at Main.main<Main.java:38>

编辑:我正在使用(默认包)这一事实是否有问题?

最佳答案

如果您使用归档工具查看 jar 内部,它应该是这样的。

JARROOT/*.class
JARROOT/sprites/ball.png

您可以尝试以下。

在 Eclipse 中右键单击 sprites 文件夹。点击Build Path -> Use as Source Folder,再次打包工程。

你对资源的调用应该是this.getClass().getResource("/sprites/ball.png");this.getClass().getResource("/ball.png");取决于 Eclipse 如何打包 jar。

编辑:请阅读 documentation .

如果您传递给 getResource("") 的字符串以 '/' 开头,它将被视为 jar 中的绝对路径。如果字符串开头没有“/”,它将被视为类的相对路径。

这是一个带有注释的简单项目的图像。文件夹“icons”是一个资源文件夹。它的内容将被打包在 jar 里。在这种情况下 JARROOT/other/zoom-out-icon.JPGJARROOT/zoom-in-icon.jpg

enter image description here

关于java - 尝试使用图像资源时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com