民间,
我正在使用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文件只是从项目的根目录工作。 这是我的配置: 和我的项目结构: 我在命令行运行以下