【问题标题】:How to launch openjfx 11 app on Intellij Idea?如何在 Intellij Idea 上启动 openjfx 11 应用程序?
【发布时间】:2019-03-14 16:01:39
【问题描述】:

我正在使用带有 java 11 的 openjfx 11。

如果我使用 mvn 启动应用程序,它可以正常工作。我添加了这些依赖项:

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>11</version>
</dependency>

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11</version>
</dependency>

但如果我在 Intellij Idea (2018.2) 中运行,它会给我:

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

IntelliJ idea 将 jars 添加到类路径。

【问题讨论】:

  • 查看question,了解如何设置 IntelliJ 和 Maven 项目
  • 我看到了答案,但它没有解决从 intellij 运行应用程序的问题,而无需手动设置一个单独的(来自 maven)sdk 文件夹。
  • 是的,通过将所需的 maven 插件添加到您的 pom.xml 中。然后您可以运行 exec:java 目标(请参阅要点 4、5)。
  • 但是运行maven目标和通过intellij idea运行是不一样的。或者是吗?我可以这样调试运行吗?
  • 是的,您可以通过 Maven 项目窗口从 IntelliJ 运行和调试。

标签: intellij-idea javafx openjfx javafx-11


【解决方案1】:

对于任何寻找的人,我在这里找到了答案(不是特定于 Intellij) : http://mail.openjdk.java.net/pipermail/openjfx-dev/2018-October/022675.html

【讨论】:

    【解决方案2】:

    有两种方式:


    第一个是将
    --module-path=PATHTOOPENJFX/lib --add-modules=javafx.controls,javafx.fxml
    参数传给java


    第二个:
    创建新类,使其成为 main 并调用扩展 Application 的类的 main()

    package sample;
        public class Main {
            public static void main(String[] args) {
                YourClass.main(args);
            }
        }
    

    【讨论】:

    • 我如何在 IntelliJ 中传递这个
    • @user3801839 这可能会帮助你stackoverflow.com/questions/50938383/…
    • 为什么它可以与额外的主类(Main)一起使用,但不能直接与原始类(YourClass)一起使用?
    猜你喜欢
    • 2018-11-11
    • 1970-01-01
    • 2016-12-28
    • 2019-03-19
    • 2016-03-29
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2015-08-20
    相关资源
    最近更新 更多