【问题标题】:How do you refer to an image without using the file path?如何在不使用文件路径的情况下引用图像?
【发布时间】:2016-03-14 04:48:38
【问题描述】:

目前,我引用图像的方式是使用代码行:

 static ImageIcon img1 = new ImageIcon("src\\img1.png");
 static ImageIcon img2 = new ImageIcon("src\\img2.png");

但是,当我将它从 eclipse 导出到 .jar 文件中时,图片没有显示出来。是否可以在不设置完整文件路径的情况下引用图像(例如(“C:\XXXX\XXXX\XXXX.img1.jpg)),因为如果我将.jar放在闪存驱动器上,完整的文件路径没用吗?

【问题讨论】:

  • 使用Class#getResource,例如getClass().getResource("/img1.png)`
  • 此外,Java 知道系统上的路径分隔符,并将其替换为路径中的任何“/”。上面的路径可以写为"src/img1.png",然后它可以在任何系统、Windows、*nix 等上运行。因为它被硬编码为仅限 Windows,
  • @markspace 不正确。 Java 对文件路径没有做任何特别的事情。您可以在 Windows 上使用正斜杠的唯一原因是,除了反斜杠之外,Windows 还允许它作为分隔符。它取决于操作系统。 (请注意,我说的是文件路径,就像问题中一样。Class.getResource 中的 Resource 路径始终使用正斜杠)
  • @MadProgrammer 在这种情况下我将如何使用它?您还有更多信息可以提供帮助吗?
  • @markspace 除非你不应该在部分代码中引用src ;)

标签: java image jar


【解决方案1】:

在包含图像的包上创建任何空类示例:ImageLoader

当你想加载图片时:

   ImageIcon img1 = new ImageIcon(ImageLoader.class.getResource("img1.png"));

ImageLoader.class.getResource : 将返回 ImageLoader 类的 URL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多