java - FXMLLoader 未从 JUnitTest 加载(相对路径问题)

标签 java hibernate maven javafx

当我从 JavaFXAplication 类调用 WindowController 类的 loadFXMLItemsAgain() 方法时,绝对路径是正确的,但我在 WindowControllerTest (JUnit) 中执行相同的操作,会导致基本模块的绝对路径错误.../Deliverytool/... 正在切换到 .../deliverytool/deliverytool/... 这会导致错误。

我只是希望绝对路径与 JavaFXApplication 中的绝对路径相同,但我 100% 不知道它来自哪里。

我尝试使用 getClass.getRessource() 来修复它,但这是一个更严重的困惑:它在两种情况下都停止工作。

这里是 Project Structure 的链接.

//The method in WindowController:
public void loadFXMLItemsAgain() throws IOException {
        FXMLLoader loader = new FXMLLoader(new File("deliverytool/Fxml/Window.fxml").toURI().toURL());
        if (loader.getController() == null) {
            loader.setController(this);
        }
        pane = loader.load();
    }
//The way the method is called in JavaFXApplication
@Override
    public void start(Stage primaryStage) throws Exception {
        WindowController controller = new WindowController();
        controller.setVerw(verw);
        controller.setVerwk(verwk);
        controller.loadFXMLItemsAgain();
        primaryStage.setTitle("Deliverytool");
        controller.init(primaryStage);
        controller.show();
        ...
    }
//The way the method is called in WindowControllerTest JUnit Test Class
public class WindowControllerTest {
    WindowController controller = new WindowController();
@BeforeEach
    public void init() throws IOException {
        controller.loadFXMLItemsAgain();
    }
...
}

java.io.FileNotFoundException:.../Inteliji IDEA/pizzagesch-ft/deliverytool/deliverytool/Fxml/Window.fxml(没有这样的文件或目录)

应该是:

.../Inteliji IDEA/pizzagesch-ft/deliverytool/Fxml/Window.fxml

最佳答案

确保“JavaFXApplication”和“WindowControllerTest JUnit 测试类”位于同一文件夹中。
后者似乎已经在“/deliverytool”文件夹中。

关于java - FXMLLoader 未从 JUnitTest 加载(相对路径问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513354/

相关文章:

java - Android 文件未在 SD 卡上创建

java - GradlecompileJava任务不断失败

Java (J2ME) 将图像转换为 byte[],然后返回图像

spring - Postgres 空闲连接 : CannotAcquireResourceException

java - 在 Spring 3.1.0 中使用 Spring Data JPA

java - 如何使用lambda在构造函数参数中实现 > 1 接口(interface)方法?

java - 分离的对象如何在 hibernate 中工作

hibernate - 如何在ElasticSearch Hibernate集成中更改分片数量

java - hadoop-yarn-server-nodemanager 上的 Hadoop 2.6.0 Maven 编译错误

java - JAXB maven 插件只能在发生变化时生成源代码吗?