Java 将项目转换为Maven后图像消失
我有一个小的JavaFX应用程序。一切看起来都很好,工作也很顺利。突然,我想将这个项目转换为Maven项目(我想添加一些外部依赖项并在应用程序中使用它们) 在Eclipse中,我右键单击了该项目,选择了Java 将项目转换为Maven后图像消失,java,maven,javafx,fxml,Java,Maven,Javafx,Fxml,我有一个小的JavaFX应用程序。一切看起来都很好,工作也很顺利。突然,我想将这个项目转换为Maven项目(我想添加一些外部依赖项并在应用程序中使用它们) 在Eclipse中,我右键单击了该项目,选择了Configure,然后选择了converttomaven项目…。在我构建并运行应用程序之前,一切都很顺利。整个应用程序工作正常,但应用程序窗口中有一个徽标,在将项目转换为Maven后,图像消失了 我将JavaFX与FXML和SceneBuilder一起使用 在RootLayout.fxml文件中
Configure
,然后选择了converttomaven项目…
。在我构建并运行应用程序之前,一切都很顺利。整个应用程序工作正常,但应用程序窗口中有一个徽标,在将项目转换为Maven后,图像消失了
我将JavaFX与FXML和SceneBuilder一起使用
在RootLayout.fxml
文件中,有一个条目:
<ImageView fitHeight="150.0" fitWidth="200.0" layoutX="225.0" layoutY="50.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../../../../../../resources/images/nbtc.jpg" />
</image>
</ImageView>
编辑:
我已经将图像移动到
RootLayout.fxml所在的同一个包中,并在SceneBuilder
中选择了移动的图像,现在显示的是图像,但这仍然不是我正在寻找的droid…根据惯例,maven使用了一个特定的目录结构,这也是最好使用的。
(它是可配置的,但我从来都不需要这样做,对于刚接触maven的人来说,这会适得其反。)
这样,jar/war/ear
文件/类路径将包含我放入(…)
中的路径
项目文件夹结构与运行时的类路径结构不同。假设资源正确地包含在构建路径中,则运行时类路径中映像和fxml的绝对路径为
/images/nbtc.jpg
及
因此,需要将图像指定为
您也不应该依赖于映像在运行时作为文件可用。通常资源作为条目包含在.jar
文件中;这不允许通过文件:
协议进行访问。改用getResource
:
this.primaryStage.getIcons().add(new Image(getClass().getResource("/images/programicon32.png").toExternalForm()));
可能的副本可能会有所帮助。
getClass().getResourceAsStream("/images/nbct.jpg")
/images/nbtc.jpg
/com/l4a/mbtc/application/util/RootLayout.fxml
this.primaryStage.getIcons().add(new Image(getClass().getResource("/images/programicon32.png").toExternalForm()));