I need help in determining the path to my FXML template.
My project:
com
test
abc
xyz
main
MainController.java
TEMPLATE.fxml
Launcher.java
I need to access the TEMPLATE.fxml file in Launcher.java. I tried many different commands, but I always get null. What's the problem?
For some attempts, when I hold down the right CTRL, it finds the file from the IntelliJ level and opens it immediately. However, when compiling, I always get null.
File: Launcher.java
package com.test.abc.xyz;
import com.test.abc.xyz.main.MainController;
import javafx.application.Application;
import javafx.stage.Stage;
public class Launcher extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
System.out.println("TEST1: " + this.getClass().getClassLoader().getResource("com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST2: " + this.getClass().getClassLoader().getResource("/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST3: " + this.getClass().getResource("com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST4: " + this.getClass().getResource("/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST5: " + getClass().getResource("com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST6: " + getClass().getResource("/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST7: " + MainController.class.getClassLoader().getResource("main/TEMPLATE.fxml"));
System.out.println("TEST8: " + MainController.class.getClassLoader().getResource("/main/TEMPLATE.fxml"));
System.out.println("TEST9: " + MainController.class.getResource("main/TEMPLATE.fxml"));
System.out.println("TEST10: " + MainController.class.getResource("/main/TEMPLATE.fxml"));
System.out.println("TEST11: " + this.getClass().getClassLoader().getResource("src/main/java/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST12: " + this.getClass().getClassLoader().getResource("/src/main/java/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST13: " + this.getClass().getClassLoader().getResource("java/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST14: " + this.getClass().getClassLoader().getResource("/java/com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST15: " + this.getClass().getResource("/com.test.abc.xyz.main/TEMPLATE.fxml"));
System.out.println("TEST16: " + this.getClass().getResource("com.test.abc.xyz.main.TEMPLATE.fxml"));
System.out.println("TEST17: " + this.getClass().getResource("com/test/abc/xyz/main/TEMPLATE.fxml"));
System.out.println("TEST18: " + getClass().getClassLoader().getResource("main/TEMPLATE.fxml"));
System.out.println("TEST19: " + getClass().getClassLoader().getResource("/main/TEMPLATE.fxml"));
}
}
*** Output ***
TEST1: null
TEST2: null
TEST3: null
TEST4: null
TEST5: null
TEST6: null
TEST7: null
TEST8: null
TEST9: null
TEST10: null
TEST11: null
TEST12: null
TEST13: null
TEST14: null
TEST15: null
TEST16: null
TEST17: null
TEST18: null
TEST19: null
UPDATE 9.11.2020 19:16
Add to pom.xml solving a problem
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
</build>
Source: https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html