【问题标题】:JavaFX runtime components are missing, using maven, intellij [duplicate]JavaFX运行时组件丢失,使用maven,intellij [重复]
【发布时间】:2022-01-18 02:26:06
【问题描述】:

我使用带有 open-sdk 11.0.12 的 IntelliJ。 我有基于 Maven 的项目。 我从空项目开始并添加了一些依赖项。 我正在创建 JavaFX 应用程序。

我的 pom.xml 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

<groupId>org.example</groupId>
<artifactId>kalkulator</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.8</version>
            <executions>
                <execution>
                    <id>run</id>
                    <configuration>
                        <mainClass>project.Main</mainClass>
                    </configuration>
                </execution>
                <execution>
                    <id>debug</id>
                    <configuration>
                        <mainClass>project.Main</mainClass>
                        <options>
                            <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000</option>
                        </options>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <mainClass>${project.mainClass}</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.1.0</version>
        <scope>test</scope>
    </dependency>
    <!-- JavaFX -->
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>17</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>17</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>5.0.0.Final</version>
    </dependency>
</dependencies>

<properties>
    <project.mainClass>me.noname.calculator.Calculator</project.mainClass>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

当我使用 maven 运行它时,它工作正常。 我已经设定了目标:干净的 javafx:ru​​n。 我想在intellij本地运行这个项目,但是报错:

Error: JavaFX runtime components are missing, and are required to run this application

我尝试制作模块文件,但随后显示 javafx.application.Application 丢失。 这很奇怪,因为我从依赖中得到它。 我应该怎么做才能在这段代码上使用本地调试器?

【问题讨论】:

    标签: java maven intellij-idea javafx


    【解决方案1】:

    我通过在 IntelliJ 中创建一个新的 JavaFX 项目解决了我的问题。 我仍然依赖maven。那是最快的方法。但我仍然想知道为什么它在空的 maven 项目中不起作用,有什么区别。

    【讨论】:

    • 我也做了同样的事情,放弃了一个坏掉的项目,然后重新开始一个新的项目,同时从旧的内容转移。我这样做不是为了 JavaFX,而是为了其他类型的项目。在 IDE 和 Maven 之间,事情似乎偶尔会因为神秘的原因而被毁掉。在类似情况下,另一个绝望的解决方案是删除 Maven 缓存从 Internet 下载的库副本的 .m2 文件夹。 Maven 将自动重新创建此文件夹,并重新填充它(这可能需要一段时间)。此外,您的 IDE 可能会提供 使缓存无效 功能。
    • 我无法告诉您为什么您的旧项目失败了,没有提供足够的信息来诊断。
    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多