JavaFx场景构建器:CSS不在Ubuntu中加载,但在Windows上工作

问题描述:

我正在像下面的Fxml文件中添加CSS文件。JavaFx场景构建器:CSS不在Ubuntu中加载,但在Windows上工作

<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1200.0" stylesheets="@../../../resources/css/home.css" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.ctc.controller.SupplierUpdateController"> 

正如你可以看到我已经添加了CSS像stylesheets="@../../../resources/css/home.css"

这已经在Windows使用场景生成器做,它工作得很好。 但是,当我创建了jar并运行在Ubuntu 16.04上时,CSS没有被应用,并且在控制台中出现以下错误。

Oct 15, 2017 6:18:02 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged 
INFO: Could not load stylesheet: rsrc:../../../resources/css/home.css 

这是工作正常,当我在ubuntu中运行应用程序,而在Eclipse中。但是对于创建的它没有采用CSS文件。

+0

我相信这个jar也不会在windows上工作。您需要指定完整路径并将所有'../ ..'替换为正确的文件夹名称 – JKostikiadis

+0

这可以在Windows中工作,没有任何问题。当我用Intellij IDEA创建jar时,它在Ubuntu中也完美运行 –

+0

Lister先生,实际上这不是一个web应用程序。它是一个JavaFx桌面应用程序。 –

当我没有将FXML文件本身放置在资源文件夹中时,曾经有过类似的问题。路径中的资源输入表明您的FXML文件似乎也不在资源文件夹中。请尝试以下结构:

resources/css/home.css 
resources/your/package/yourlayout.fxml 

然后引用"@../../css/home.css"的yourlayout.fxml内应该没问题了。