当前位置: 首页 > 面试题库 >

Maven将图像打包在jar文件的根目录中

高溪叠
2023-03-14
问题内容

民间,

我正在使用Eclipse开发Java应用程序。Maven用于创建最终的jar文件。

应用程序中,我使用一些图像图标作为按钮。按照Internet上的一些说明,我通过单击项目创建了“源”目录。我将源目录命名为“
res”,并将图像移动到该目录。

public static ImageIcon getIcon() {
  if (isThisJarfile()) {
     URL url = this.class.getResources("/res/myicon.png");
     return new ImageIcon(url);
  }else {
     return new ImageIcon("/res/myicon.png");
  }
}

当应用未打包为jar文件时,此方法就可以正常工作(非常适合调试)。但是,当maven打包它时,我看到图像放在jar文件的根目录中。以下调用有效:

    URL url = this.class.getResource(“ / myicon.png”);

我想知道是否有我忽略的步骤。

请注意,对于图像,我不必对pom.xml进行任何特殊处理。Maven自动将它们拾起(除非将它们放置在错误的位置)。

预先感谢您的帮助。

问候,彼得


问题答案:

如果您遵循标准的Maven项目目录结构,则最好将所有非Java资源放在下src/main/resources。例如,您可以创建一个子目录images,以便完整路径为src/main/resources/images。该目录将包含您的所有应用程序映像。

打包应用程序时,应格外小心以正确访问图像。例如,以下功能应满足您的所有需求。

public static Image getImage(final String pathAndFileName) {
    final URL url = Thread.currentThread().getContextClassLoader().getResource(pathAndFileName);
    return Toolkit.getDefaultToolkit().getImage(url);
}

可以将此功能用作getImage("images/some-image.png")为了将some-image.png文件加载到图像目录中。

如果ImageIcon需要,则只需致电即可解决问题new ImageIcon(getImage("images/some-image.png"))



 类似资料:
  • 我有一个结构如下的maven项目: 我希望maven jar插件在构建jar文件时打包到数据库文件夹中。我尝试过包含这里概述的内容:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database或../../../database

  • 我使用指南中的项目结构,将css&js存储在参考资料中的静态文件夹中,将jsp文件存储在webapp/web-inf/jsp/中 但是当我在eclipse中通过“maven package”任务构建Spring Boot应用程序以fat jar时,它并没有将所有webapp文件夹打包到jar中

  • 你好,我最近把我的JavaFX8项目改为Maven,除了加载JAR旁边的文件外,一切都很好。这在以前起作用,但现在不起作用了。 文件夹结构: 要加载的图标位于/target/Icons中,JAR文件位于/target中 我读取文件的代码如下所示: 它进入循环并查找文件,但当新图像(file.getAbsoltePath())被调用时,它会崩溃。 我尝试了toExternalForm()等的各种方法

  • 问题内容: 我不想在Maven存储库(本地/远程)中安装几个jar。特别是我有一些jar文件位于 使用NetBeans打开/编辑时如何将它们包括到我的项目中? 问题答案: 您是否考虑过将这两个JAR添加为依赖项?例如, 请注意,不建议这样做,如果有的话,应该非常谨慎地使用它。

  • 我正在使用 Maven 来构建一个 Java 项目,我有几个文件,和,我想将它们复制到 JAR 文件内的 目录中。 到目前为止,我的工作如下: 但这也会在编译时将这两个文件复制到 目录中。 所以我希望这些文件包含在JAR文件中,而不是其他地方。有办法做到这一点吗?

  • 我是Spring boot的新手,我认为这个问题非常基本。 我使用Spring Boot创建了一个应用程序,在开发环境中一切都很好。但当我将jar文件从目标目录复制到另一台机器并运行“java-jar”时,它不会呈现jsp页面,并出现以下错误: 当我将src文件夹从项目根目录复制到同一位置时,它工作正常。 似乎jar文件只是从项目的根目录工作。 这是我的配置: 和我的项目结构: 我在命令行运行以下