JavaFX部署 – 图像丢失

我在JavaFX中用e(fx)clipse完成了一个小型私有项目。 现在我想将它导出为可运行的jar文件。 一切正常,除了窗格和按钮背景图像丢失的事实。 这些图像的路径是在单独的CSS文件中定义的。 该文件中的其他定义实现得很好,只有图像丢失。 任何想法可能是什么原因? 或者是否有更好的方法来发布已完成的Java项目?

这似乎是一个普遍的问题。 我自己也在努力。 看看我如何在CSS中引用css和图像。

这是一个适用于开发环境,Scene Builder和打包JAR的解决方案。

文件夹结构:

在此处输入图像描述

Main.java:

package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { FXMLLoader loader = new FXMLLoader(Main.class.getResource("view/RootLayout.fxml")); AnchorPane rootLayout = (AnchorPane) loader.load(); Scene scene = new Scene(rootLayout, 400, 400); scene.getStylesheets().add(getClass().getResource("css/application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } 

RootLayout.fxml:

               

RootLayoutController.java:

 package application.view; import javafx.fxml.FXML; import javafx.scene.control.Button; public class RootLayoutController { @FXML Button sunButton; @FXML public void handleSunButtonClick() { System.out.println( "Button clicked"); } } 

toolbar.css:

 .sun-button { -fx-graphic: url('./icons/sun.png'); } 

application.css:

 .root { -fx-background-color:lightgray; } 

sun.png:

在此处输入图像描述

这适用于开发环境和打包JAR(在Eclipse中选择“将所需库提取到生成的JAR中”)。

屏幕截图(只是一个带有通过css加载图标的按钮)

在此处输入图像描述