猿问

InputStream 不会读取 Runnable JAR 中的图像

我正在为 D&D 编写一个字符生成器,但我发现自己处于一个奇怪的情况,因为 InputStream 类似乎适用于某些文件,然后我得到:java.lang.NullPointerException: Input stream must not be null


我正在使用 InputStream 将 javafx Image 构造加载到 ImageView 构造函数中 [new ImageView(new Image(getClass().getResourceAsStream(..)))]; 当我加载一些 .jpeg 图像时它可以工作,但是当我对 .png 图像执行相同的过程时它不会


我已经尝试了 StackOverflow 上描述的许多解决方案,但似乎没有一个与我的问题太接近或根本没有帮助:


创建一个 Source 文件夹并从那里检索图像

将图像文件移动到类包

阅读所有可能的文档

这段代码工作正常,它基本上读取图像并将它们作为一些按钮的背景


ImageView imv;

        for(int i = 1; i <= 8; i++) {

            imv = new ImageView(new Image(getClass().getResourceAsStream("/ButtonImages/" + i + ".jpeg")));

...

这是构建结果(在 JAR 上工作,因为它在 Eclipse 上工作)

那么这段代码,应该会加载所有的 D&D 比赛图像

this.imv = new ImageView(new Image(getClass().getResourceAsStream("/RaceImages/" + displayname + ".png")));

它实际上确实在 Eclipse 中显示为这样,但在 Runnable jar 上报告了错误

http://img4.mukewang.com/634621830001072307940439.jpg

沧海一幻觉
浏览 88回答 1
1回答

忽然笑

我通过 try-catch 发现了这个问题,我为没有早点这样做而感到羞愧。最终,唯一的错误是图片名称中的单个大写字母被 Eclipse 绕过,但在从 .jar 运行时导致 NullPointerException。我认为这已解决,无需进一步干预。这是显示问题的图片
随时随地看视频慕课网APP

相关分类

Java
我要回答