Папка ресурсов пакета Maven в src / main в финальном jar - PullRequest
0 голосов
/ 22 сентября 2018

По умолчанию Maven проверяет папку ресурсов на основе Стандартное расположение каталогов .Хотя есть проблема с последним jar.

enter image description here

Наконец, он добавляет все ресурсы вне папки src / main, что делает мое приложение JavaFX грубым.

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));

И в последнем фляге папка с изображениями не находится в главной папке.Раньше у меня была папка ресурсов вне папки src, и все выглядело нормально, хотя я хотел следовать стандартному расположению каталогов, поэтому я переместил его.Раньше все работало хорошо, используя:

class.getResourceAsStream("/image/"+ imageName));

В настоящее время это макет каталога:

enter image description here


Что вы предлагаете?Должен ли я загружать изображения по-другому?....

Теперь работает только этот код class.getResourceAsStream("/main/resources/image/"+ imageName));

Может ли как-то сказать Maven, как упаковать папку ресурсов в финальную флягу?


После многихперезапускает и очищает проект и Maven Update Project ... кажется, что это была проблема, связанная с Eclipse ... не берите в голову, я оставлю этот вопрос здесь, так как он может пригодиться кому-то в будущем:)

1 Ответ

0 голосов
/ 22 сентября 2018

Ваш файл JAR выглядит как ожидаемый стандартный макет.

Если у вас есть src/main/resources/image/imageName.png, он будет отображаться в /image/imageName.png в файле JAR (на снимке экрана у вас есть этот каталог,так что выглядит хорошо).

Вы можете загрузить его с class.getResourceAsStream("/image/imageName.png").

...