【发布时间】:2026-02-04 04:30:01
【问题描述】:
我有一个 JavaFX 项目,它使用 getClassLoader().getResource 加载 FXML 文件,例如:
Main.class.getClassLoader().getResource("fxml/App.fxml").
主代码运行良好,但是当我使用 Maven Surefire 插件运行测试时出现此错误:
java.lang.IllegalStateException: Location is not set.
javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2459)
javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
经过进一步调查,我发现在执行测试时调用 getClassLoader().getResource() 时,它尝试解析的路径位于“target/test-classes”文件夹中,而资源位于“target/classes”中“ 文件夹。我该如何解决这个问题? 如果相关,我的项目遵循 Maven 的默认结构。
编辑:添加执行资源加载的代码行
【问题讨论】:
标签: java maven testing classloader maven-surefire-plugin