Netbeans (12x)/Maven 包含并加载嵌入式资源?
Netbeans (12x)/Maven include and load embedded resources?
简单的问题,使用 Netbeans 12x 时如何从基于 Maven 的项目中包含和加载嵌入式资源
在基于 traditional/Ant 的项目中,可以简单地将嵌入式资源放置在 Source Package
中并使用 Class#getResource
加载它,但由于某些原因,基于 Maven 的项目不会以同样的方式工作。
以下代码在使用 Ant 时有效,但在使用 Maven 时失败:
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException {
new Main();
}
public Main() throws IOException {
ImageIO.read(getClass().getResource("/images/Background.jpg"));
}
}
所以,简单的问题是,在将 Maven 与 Netbeans 12x 结合使用时如何包含嵌入式资源
Maven 对于源文件和“其他资源”的存储位置有自己的要求。与 Ant 不同,您不能简单地将“资源”放入 src/main/java
目录,而是需要将它们添加到 src/main/resources
目录。
然而,出于某种原因,Netbeans 似乎没有为您创建这个目录(至少对于我使用的基本“应用程序”模板没有)。
在这种情况下,您需要自己创建。您可以从命令行或文件管理器执行此手册,但 Netbeans 也允许您创建。
首先右键单击项目的根节点并select“New/Folder”
在对话框中,将文件夹命名为 resources
,然后点击“浏览”按钮(在“父文件夹”旁边)
Select src/main
目录
点击完成,一个新的“节点”应该出现在名为“其他来源”的项目中
现在,我希望我可以说向该目录添加资源很容易,但我最终只是使用文件管理器将文件直接复制并粘贴到该目录。
包含资源后(它们应该显示在“其他来源”节点下),您可以从代码中引用它们。
不过要记住的重要一点是,您不需要在路径中包含 resources
,因为目录的内容被复制到生成的产品中,而不是目录本身。
因此,布局为:
以下代码将毫无问题地加载图像:
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException {
new Main();
}
public Main() throws IOException {
ImageIO.read(getClass().getResource("/images/Background.png"));
}
}
简单的问题,使用 Netbeans 12x 时如何从基于 Maven 的项目中包含和加载嵌入式资源
在基于 traditional/Ant 的项目中,可以简单地将嵌入式资源放置在 Source Package
中并使用 Class#getResource
加载它,但由于某些原因,基于 Maven 的项目不会以同样的方式工作。
以下代码在使用 Ant 时有效,但在使用 Maven 时失败:
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException {
new Main();
}
public Main() throws IOException {
ImageIO.read(getClass().getResource("/images/Background.jpg"));
}
}
所以,简单的问题是,在将 Maven 与 Netbeans 12x 结合使用时如何包含嵌入式资源
Maven 对于源文件和“其他资源”的存储位置有自己的要求。与 Ant 不同,您不能简单地将“资源”放入 src/main/java
目录,而是需要将它们添加到 src/main/resources
目录。
然而,出于某种原因,Netbeans 似乎没有为您创建这个目录(至少对于我使用的基本“应用程序”模板没有)。
在这种情况下,您需要自己创建。您可以从命令行或文件管理器执行此手册,但 Netbeans 也允许您创建。
首先右键单击项目的根节点并select“New/Folder”
在对话框中,将文件夹命名为 resources
,然后点击“浏览”按钮(在“父文件夹”旁边)
Select src/main
目录
点击完成,一个新的“节点”应该出现在名为“其他来源”的项目中
现在,我希望我可以说向该目录添加资源很容易,但我最终只是使用文件管理器将文件直接复制并粘贴到该目录。
包含资源后(它们应该显示在“其他来源”节点下),您可以从代码中引用它们。
不过要记住的重要一点是,您不需要在路径中包含 resources
,因为目录的内容被复制到生成的产品中,而不是目录本身。
因此,布局为:
以下代码将毫无问题地加载图像:
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException {
new Main();
}
public Main() throws IOException {
ImageIO.read(getClass().getResource("/images/Background.png"));
}
}