导出的 JAR 无法读取图像 [重复]

2023-11-30

我正在尝试让图像显示在 JPanel 中。这是我正在使用的代码:

        URL imageURL;
        BufferedImage image = null;
        ImageIcon icon;

        imageURL = getClass().getClassLoader().getResource("images/audiorpglogo.png");
        if (imageURL == null) {
            System.out.println(imageURL == null);
            try { imageURL = new File("images/audiorpglogo.png").toURI().toURL(); }
            catch (Exception e1) { imageURL = null; }
        }

        System.out.println(imageURL == null);

        try { image = ImageIO.read(imageURL); }
        catch (Exception e) { }

        System.out.println(image == null);

        icon = new ImageIcon(image);

        System.out.println(icon == null);

        logo = new JLabel(icon);

当我在 Eclipse 中运行该程序时,我得到以下输出:

true
false
false
false

但是,当我将程序导出为可运行的 JAR 时,我得到以下输出:

true
false
true
java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:204)
    at me.pogostick29.audiorpg.window.Window.<init>(Window.java:85)
    at me.pogostick29.audiorpg.window.WindowManager.setup(WindowManager.java:16)
    at me.pogostick29.audiorpg.AudioRPG.main(AudioRPG.java:30)

先谢谢您的帮助!


您应该有一个资源文件夹,其文件夹名为images那么它应该有效。

Example:

enter image description here

我如何访问这些图标:

public BufferedImage icon32 = loadBufferedImage("/icon/icon32.png");
public BufferedImage icon64 = loadBufferedImage("/icon/icon64.png");

private BufferedImage loadBufferedImage(String string)
{
    try
    {
        BufferedImage bi = ImageIO.read(this.getClass().getResource(string));
        return bi;
    } catch (IOException e)
    {
        e.printStackTrace();
    }
    return null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导出的 JAR 无法读取图像 [重复] 的相关文章

随机推荐

  • FirebaseUI 在某些地区不适用于 Apple IOS 和 macOS 设备,而在其他地区则适用

    我有一个使用 firebase UI 来登录用户的 Web 应用程序 我们已经将 firebase 配置中的身份验证域替换为运行应用程序的自定义域 并且还尝试切换到signInWithPopup 但社交提供商 Facebook 和 Micr
  • 默认情况下,StatefulWidget 中不会调用 initState 函数

    感谢您的关注 我是颤振的初学者 我不知道为什么initState默认情况下不调用该函数 因为 print list 0 语句没有被运行 import package flutter material dart import main pag
  • 如何重定向并返回 200 状态代码

    我有一个 Rails 应用程序 当用户填写表单时 它会使用新信用卡 ping stripe 完成后 它会重定向回主页 然而 stripe 说我返回 503 我认为这就是代码 而不是 200 我正在执行常规的redirect to root
  • Composer 类映射和加载具有非标准扩展名的文件

    通过composer加载文件时classmap功能是否可以加载具有非标准扩展名的 PHP 文件 例如myFileName stub or myFileName foo 目前似乎还没有加载它们 Composer 目前将包含具有以下扩展名的文件
  • 漂亮的 URL ASP.NET MVC

    如何获得漂亮的网址 如 localhost 8888 News Example post 而不是 localhost 8888 Home Details 2 我的 HomeController 有以下详细信息方法 public Action
  • 重新部署远程 glassfish 货物失败

    我目前正在尝试使用 Cargo 通过 Atlassian 的 Bamboo 在远程 glassfish 3 1 2 上部署应用程序 这是一个开发环境 因此具有不同版本号的相同应用程序每次都会部署在相同的上下文根上 但每次我以 Maven 目
  • 日期选择器 minDate 今天和 maxDate 明年 12 月 31 日

    尝试将日期选择限制在今天和明年 12 月 31 日之间 function public holiday date pick datepicker minDate 0 yearRange 0 1 maxDate hideIfNoPrevNex
  • 如何在Python pandas中从Excel文档中读取数据透视表?

    我有一份 Excel 文档 其中包含体育栏 其中有体育名称和运动员姓名 如果我点击运动名称 运动员的名字就会消失 即运动员的名字是运动名称的子代 Please look at the data below 如果我点击板球 那么 ramesh
  • 如何在 Express 中发送标头 [MEAN]

    我是 Express 的初学者 所以我可能没能正确地提出这个问题 我创建了一个 MEAN 应用程序 其中我将我的frontend and backened 前端运行于port 4200服务器运行于port 3000 作为部署的一部分 我想在
  • python绘图日期轴作为字符串而不是日期

    我想使用 pythonplotly 创建一个条形图 其中 x 轴日期作为字符串 类别 由于某种原因 plotly 不断将字符串转换为日期 我的 x 轴是日期的连续 时间线 而不是我期望的类别 我的问题 如何构建一个条形图 将我的日期作为类别
  • RichTextBox 的只读内容不显示图像

    我遇到过一些奇怪的行为RichTextBox 我希望它是readonly 但是当我使用时它不显示图像richTextBox LoadFile path 加载方法 rtf文件 当它不是readonly文件已正确加载并显示图像 我正在使用 Wi
  • Android折叠工具栏:如何调整文本大小,使其显示全文而不是部分文本

    我正在使用 CollapsingToolbarLayout 我使用以下代码来显示标题 collapsingToolbar CollapsingToolbarLayout findViewById R id collapsing toolba
  • jQuery UI Slider - 禁用轨道上的滑动/启用手柄 mousedown

    我有一个 jQuery UI 滑块 当用户尝试使用轨道滑动时我想禁用它 它应该仅在有人将手柄拖动到某处时才起作用 启用 应禁用单击并尝试拖动滑动来移动手柄 我不确定这是否可以使用来完成unbind or mousedown event 我注
  • MVC 中的简单会员提供程序

    如何从 ASP NET MVC4 中的空 Web 应用程序模板创建简单的会员提供程序 我在谷歌 必应和许多其他网站上搜索了很多 但没有得到关于会员提供商的积极回应 有人可以告诉我会员提供商的基本情况吗 please 我按照以下步骤操作 因此
  • Enter 键上的 JQuery 自动完成操作

    我希望自动完成功能像这样 当用户在文本框中输入内容时 不应发生任何事情 仅当用户完成书写时才应出现自动完成建议列表 在文本框中输入并按回车键 知道如何做到这一点 或者在哪里更改代码 STEP 1
  • 从打开的“FILE*”获取缓冲参数

    在C中 我们可以使用设置vbuf 设置缓冲区 其大小和缓冲模式 我惊讶地发现没有人问如何read这些值 给定一个开放的FILE e g stdout 或用户提供 即 如何实现 getvbuf 例行公事 甚至是其中的一部分 void getv
  • 为什么我的 Xamarin iOS 中的 WebRequest 在 ipv6 环境中失败?

    我设置了本地ipv6环境如下https developer apple com library content documentation NetworkingInternetWeb Conceptual NetworkingOvervie
  • 如何使用 Microsoft Bot Framework 显示来自我的机器人的欢迎消息

    我想在有人连接到我的机器人时显示欢迎消息 我使用了 github 上的 demo ContosoFlowers 示例中的技术 https github com Microsoft BotBuilder Samples tree master
  • 绘制太多点?

    R 基 格或其他 如何从 100000 个元素向量 或输出该值的函数 创建图形 它会阴谋一些而拒绝另一些吗 将所有内容都放在彼此之上 我怎样才能改变这种行为 我怎样才能创建一个图表 让我在每个时间间隔都能看到最大值和最小值 就像交易 条形
  • 导出的 JAR 无法读取图像 [重复]

    这个问题在这里已经有答案了 我正在尝试让图像显示在 JPanel 中 这是我正在使用的代码 URL imageURL BufferedImage image null ImageIcon icon imageURL getClass get