Gradle + JavaFX-构建“资源”目录的正确方法是什么?

时间:2019-04-20 18:24:53

标签: java gradle javafx

我有一个使用Gradle构建工具的JavaFX项目。什么是构造src/main/resources文件夹的正确方法,以便我可以通过简单的代码行轻松访问*.fxml*.css

Parent root = FXMLLoader.load(getClass().getResource("xxx.fxml"));


我正在this tutorial中使用Gradle插件和JavaFX的build.gradle文件,它具有一个简单的项目树,如下所示:

.
├── src.main
|    ├── java
|    |   ├── org.openjfx
|    |   |   ├── MainApp.java
|    |   └── └── FXMLController.java
|    ├── resources
|    |   ├── org.openjfx
|    |   |   ├── scene.fxml
└──  └── └── └── styles.css

通过这种方式,MainApp.java可以使用scene.fxml加载getResource("scene.fxml")


但是,如果javaresources目录结构不匹配,请假设我的项目树是这样的,以便我可以将fxml文件和css文件分开:< / p>

.
├── src.main
|    ├── java
|    |   ├── org.openjfx
|    |   |   ├── anotherPackage 
|    |   |   |   ├── MainApp.java
|    |   └── └── FXMLController.java
|    ├── resources
|    |   ├── org.openjfx
|    |   |   ├── layouts
|    |   |   |   ├── scene.fxml
|    |   |   ├── styles
└──  └── └── └── └──styles.css

现在MainApp.java必须加载scene.fxmlgetResource("../layouts/scene.fxml")


我是Gradle和JavaFX的新手,我想知道什么是管理资源的正确方法,包括fxml,CSS和图片等。


ps。抱歉,如果我提出的问题不正确。

1 个答案:

答案 0 :(得分:1)

iirc,资源目录结构应镜像包结构。看看https://www.eviltester.com/2017/12/resource-files-for-tests-java-maven.html