我在 IDE 中或作为打包的 jar 运行我的项目没有问题,但不知何故,当我使用 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)
该项目遵循 Maven 的目录结构。我用来加载 FXML 的代码是
Main.class.getClassLoader().getResource("fxml/App.fxml")
有谁知道可能是什么问题?我试图用谷歌搜索类似的问题,但没有找到。我也没有找到任何与我类似的工作示例项目。
编辑 1:这是插件声明
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
<threadCount>1</threadCount>
<printSummary>true</printSummary>
<skipTests>false</skipTests>
<systemPropertyVariables>
<glass.platform>Monocle</glass.platform>
<monocle.platform>Headless</monocle.platform>
<prism.order>d3d</prism.order>
</systemPropertyVariables>
<argLine>
--add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED
--add-exports javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
</argLine>
</configuration>
</plugin>