Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将项目转换为Maven后图像消失_Java_Maven_Javafx_Fxml - Fatal编程技术网

Java 将项目转换为Maven后图像消失

Java 将项目转换为Maven后图像消失,java,maven,javafx,fxml,Java,Maven,Javafx,Fxml,我有一个小的JavaFX应用程序。一切看起来都很好,工作也很顺利。突然,我想将这个项目转换为Maven项目(我想添加一些外部依赖项并在应用程序中使用它们) 在Eclipse中,我右键单击了该项目,选择了Configure,然后选择了converttomaven项目…。在我构建并运行应用程序之前,一切都很顺利。整个应用程序工作正常,但应用程序窗口中有一个徽标,在将项目转换为Maven后,图像消失了 我将JavaFX与FXML和SceneBuilder一起使用 在RootLayout.fxml文件中

我有一个小的JavaFX应用程序。一切看起来都很好,工作也很顺利。突然,我想将这个项目转换为Maven项目(我想添加一些外部依赖项并在应用程序中使用它们)

在Eclipse中,我右键单击了该项目,选择了
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()));