java - 我的 jar 文件不会加载图像

标签 java jar executable-jar imageicon

我目前正在编写一个程序,我需要将其作为 jar 发送给 friend 。该程序有需要加载的图像才能使程序正常工作,我希望所有图像都包含在一个 jar 中。目前它不适用于可执行 jar 或当我通过命令行运行它时。然而,它适用于 netbeans。

这是我使用的代码:

加载我正在使用的图像:

protected ImageIcon createImageIcon(String path, String description)
{
 java.net.URL imgURL = getClass().getClassLoader().getResource(path);
 if (imgURL != null)
 {
     return new ImageIcon(Toolkit.getDefaultToolkit()
                  .getImage(imgURL),description);
 }
 else
 {
     System.err.println("Couldn't find file: " + path);
     return null;
 }
}

对于URL我也试过了

 getClass().getResource(path)

应该创建图像的行是:

this.img =createImageIcon(File.separator+"."+File.separator
           +"resources"+File.separator+"tiles"+File.separator+"tile.png","tile");

我的 jar 文件设置了包含类文件的文件夹和位于其顶层的资源文件夹。

我已经四处寻找解决这个问题的方法,但找不到任何有效的方法。

谢谢。

最佳答案

您的 URL 将评估为 "/./resources/tiles/tile.png" 这没有意义(但可能是您运行时使用的 ClassLoader来自 NetBeans 的容忍错误。)
尝试删除初始 "/./"。此外,您不需要对 File.separator 的引用,因为该字符串被视为相对 URL,并且正斜杠始终有效。

关于java - 我的 jar 文件不会加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675617/

相关文章:

java - ConfigChanges 期间 ActionBar 的导航模式变化

java - 奇怪的 JPA 行为,初始化字段为空

java - Maven exec 有效,但 java -jar 无效

java - 如何使用 bash 脚本将所有 jar 结果打印到文件中

java - selenium RC中的空指针异常使用java

java_import 已经初始化常量

java - 错误::java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

java - 在 Netbeans 中自动生成源代码和 doc jar

java - 运行 jar 时项目抛出 IOException(未找到文件)

java - 如何使用批处理文件运行两个java应用程序?