将您的文件移动到src/main/resources
并添加您的css
文件:
scene.getStylesheets().add(getClass().getClassLoader().getResource("stylesheet.css").toExternalForm());
好吧,如果您想从 jar 中运行它,则更stylesheet.css
改为stylesheet.bss
(二进制 css),打包您的应用程序:
mvn clean compile jfx:build-jar
并运行你的罐子。
java -jar app.jar
我有一个丑陋的 hack 让它有点可用(我正在使用Netbeans,令人惊叹的maven完整性):
我在目录中创建一个project.properties
文件,src/main/resources
file_css= ${file_css} // by default I use *.css file.
并使其可过滤,在我的POM
文件中:
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version> 1.5 </version>
<configuration>
....
</configuration>
</plugin>
</plugins>
</build>
...
并创建两个maven
配置文件,一个用于dev
,另一个用于production
(打包到 jar):
<profiles>
<profile>
<id>production</id>
<properties>
<file_css>stylesheet.bss</file_css>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<file_css>stylesheet.css</file_css>
</properties>
</profile>
</profiles>
所以,你加载你的 css
文件是这样的:
scene.getStylesheets().add(getClass().getClassLoader().getResource(ResourceBundle.getBundle("project").getString("file_css")).toExternalForm());
我使用production
配置文件进行包装,以及dev
像compile, test, run
.
编辑:
一个完整的例子托管在github 上。