2

我在 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>
4

0 回答 0