getClass().getResource() 与 Java Web Start

发布于 2024-10-25 07:49:49 字数 541 浏览 1 评论 0原文

当我使用 getClass().getResource(ACCEPT_PNG) 加载 ImageIcon 时,它在我的本地计算上运行良好。 当我的类及其资源嵌入到 JAR 中时,对于 Java Web Start 应用程序,无法找到资源,并且相同的代码返回 null...

有什么想法吗?

   /** Path to a PNG ressource. */
   private static final String ACCEPT_PNG = "accept.png";

   private static ImageIcon acceptPngIcon = null;

   private ImageIcon getAcceptPngIcon() {
      if (acceptPngIcon == null) {
         acceptPngIcon = new ImageIcon(getClass().getResource(ACCEPT_PNG));
      }
      return acceptPngIcon;
   }

When I use getClass().getResource(ACCEPT_PNG) to load an ImageIcon, it works well on my local compute.
When my class is embeded with its ressource in a JAR, for a Java Web Start application, the ressource can't be found, and the same code returns null...

Any idea?

   /** Path to a PNG ressource. */
   private static final String ACCEPT_PNG = "accept.png";

   private static ImageIcon acceptPngIcon = null;

   private ImageIcon getAcceptPngIcon() {
      if (acceptPngIcon == null) {
         acceptPngIcon = new ImageIcon(getClass().getResource(ACCEPT_PNG));
      }
      return acceptPngIcon;
   }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦一生花开无言 2024-11-01 07:49:49

我遇到了同样的问题,并按照 Oracle 的 Java Web Start 中的方法解决了该问题教程:使用类加载器来检索资源而不是类本身:

getClass().getClassLoader().getResource(ACCEPT_PNG); 
    // works both locally and via Web Start
getClass().getResource(ACCEPT_PNG); 
    // only works locally; returns null for any path via Web Start

I had the same issue and solved it by following the approach in Oracle's Java Web Start tutorial: use the class loader to retrieve the resource instead of the class itself:

getClass().getClassLoader().getResource(ACCEPT_PNG); 
    // works both locally and via Web Start
getClass().getResource(ACCEPT_PNG); 
    // only works locally; returns null for any path via Web Start
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文