我找到了这篇文章:http://docs.oracle.com/javafx/2/deployment/packaging.htm#BABCACBD。您能告诉我如何使用这个工具将CSS文件转换为BSS文件吗?从网站上的信息来看,我不太清楚如何将其用于JavaFX应用程序。如果能得到帮助,将不胜感激。
假设你的 JDK 8 主目录下的 bin 目录已经添加到了 shell 的 PATH 路径中。
创建 Love.java 文件:
import javafx.stage.*;
import javafx.application.*;
import javafx.scene.control.*;
import javafx.scene.*;
public class Love extends Application {
public void start(Stage stage) throws Exception {
Scene scene = new Scene(new Label("hello, world"));
scene.getStylesheets().add("love.css");
stage.setScene(scene);
stage.show();
}
}
编译它:
javac Love.java
创造 love.css:
.label { -fx-text-fill: firebrick; }
编译它:
javafxpackager -createbss -srcfiles love.css -outdir . -outfile love
这将创建love.bss
现在你可以删除love.css
,因为你已经生成了二进制爱。
现在运行你的应用程序:
java Love
尽管您请求了love.css
,但JavaFX运行时足够智能,能识别出您有一个二进制的love.bss
并使用它来应用css样式到您的应用程序。
@echo off
for %%f in (*.css) do (
"%JAVA_HOME%\bin\javafxpackager" -createbss -srcfiles "%cd%\%%f" -outdir . -outfile %%~nf
)
echo.
echo Press any key to exit . . .
pause>nul
基本上,jewelsea已经完美地解释了解决方案,只要注意它仅在你的CSS文件中有一些内容时才有效。例如,在由e(fx)clipse创建的空application.css上不起作用,因此您可以简单地添加类似于.dummy-class {-fx-background-color: red;}的内容,然后进行转换。
其他答案中的命令已经不存在了,但相关代码还存在。
请保存JavaFX中Css2Bin类的代码。
然后在终端运行java Css2Bin my-styles.css
。一个名为my-styles.bss
的新文件将被创建。(不要忘记添加所有--add-modules库)
javafxpackager
仍然存在于Java 9中,它已经从javafxpackager
更名为javapackager
。 - jewelseajpackage
是打包Java应用程序的未来,但不幸的是只能在EA版本中使用。 - smac89jpackage
可用之前(或者即使它可用但不提供css->bss转换),如果需要,您应该能够使用早期版本的javapackager
将css
转换为bss
文件。 - jewelsea