【发布时间】:2019-03-14 10:57:46
【问题描述】:
我想使用 运行/调试配置从 IntelliJ IDEA 运行 HelloWorld JavaFX 11 application using Maven,以便能够调试应用程序。
我在 IntelliJ IDEA 中使用 pom.xml 和 HelloFX.java 创建了一个 Maven 项目。
我可以成功构建项目并运行它执行指定的compile 和exec:java 目标。
但是当我使用带有 VM 选项 --add-modules=javafx.controls 的运行/调试配置运行它时,我得到:
启动层初始化时出错
java.lang.module.FindException:找不到模块 javafx.controls
我设法运行它的唯一方法是下载a JavaFX runtime并将VM选项设置为--module-path /path/to/javafx-sdk-11/lib --add-modules=javafx.controls。
但是有没有办法使用从 Maven 下载的工件来运行它?正如我认为 IntelliJ IDEA 可以在运行时使用 Maven 工件一样。还是我只是弄错了什么?
附:我知道this answer,但它没有描述我想要做什么。
【问题讨论】:
-
使用模块化 Java 应用程序。
-
@mrmcwolf 但是可以在非模块化应用程序中使用 JavaFX 11 (openjfx.io/openjfx-docs/#install-javafx)。那么为什么我必须使用模块化的呢?
-
从
exec:java目标调试(Maven 项目窗口,右键单击 -> 调试 [exec:java]),对我有用,无需添加 SDK。 -
@JoséPereda 谢谢。它也适用于我。但也许你有什么想法为什么
Application类型的配置不起作用(你建议的配置类型是Maven)?它一直适用于我以前的 Maven 项目。 -
@Dfm 我遇到了同样的问题。我创建了另一个运行配置:exec:java -f pom.xml。这失败并出现以下错误:目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java 的参数“mainClass”丢失或无效.如果我使用主类添加插件配置,则会收到此错误:指定的主类不包含具有适当签名的主方法。
标签: java maven intellij-idea javafx java-11