默认情况下,Maven根据
Standard Directory Layout
. 虽然最后的罐子有问题。
Caused by: java.lang.NullPointerException: Input stream must not be null
at javafx.graphics/javafx.scene.image.Image.validateInputStream(Unknown Source)
at javafx.graphics/javafx.scene.image.Image.<init>(Unknown Source)
at main.java.com.goxr3plus.xr3player.application.tools.InfoTool.getImageFromResourcesFolder(InfoTool.java:734)
at main.java.com.goxr3plus.xr3player.application.Main.start(Main.java:324)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
... 1 more
因为我正在从src/main/resources文件夹加载图像,如下所示:
class.getResourceAsStream("/main/resources/image/"+ imageName));
在最后一个jar中,images文件夹不在主文件夹下。我以前把资源文件夹放在外面
src
文件夹和一切似乎还好,但我想按照标准的目录布局,所以我把它。在一切正常工作之前,请使用:
class.getResourceAsStream("/image/"+ imageName));
这是当前的目录布局:
只有那个代码现在有效
class.getResourceAsStream("/main/resources/image/"+ imageName));
你能告诉Maven如何在最终jar上打包resources文件夹吗?