IntelliJ JavaFX Maven 运行:无法识别的选项:--module-path
Posted
技术标签:
【中文标题】IntelliJ JavaFX Maven 运行:无法识别的选项:--module-path【英文标题】:IntelliJ JavaFX Maven Run: Unrecognized option: --module-path 【发布时间】:2020-11-05 15:33:04 【问题描述】:当您使用 Maven 和 JavaFX 原型创建新的 IntelliJ 项目时,我正在尝试运行(使用 Maven 的 javafx:compile 然后 javafx:run)默认的 JavaFX 应用程序。
这是错误的前几行,其余的没有任何有用的信息:
[INFO]
[INFO] --- javafx-maven-plugin:0.0.3:run (default-cli) @ ISAMG ---
Unrecognized option: --module-path
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
...
一些Java配置细节:
此项目的项目 JDK 是通过 IntelliJ (OpenJDK) 下载的。 项目语言级别为 14。 模块语言级别为 14。 目标字节码设置为 14。 Maven 的 Runner JRE 设置为同一个项目 JDK(不通过 JAVA_HOME 环境变量)。 IntelliJ 终端中给出的 JavaC 版本是javac 14.0.1
IntelliJ 终端中给出的Java 版本是java version "1.8.0_261"
Maven 本身并未独立于 IntelliJ 安装在我的计算机上。
项目是一个模块项目(带有module-info.java)
没有插件。
这些是我尝试/检查过的步骤:
-
使用 javafx-maven-plugin 版本 0.0.1 到 0.0.4
使用了一个单独下载的 JDK 副本(从 Oracle 的网站),一切都指向这一点。
将语言级别和目标字节码设置为 11。
已试用 JavaFX 版本 12.0.2 和 14
尝试运行 Maven 的
compile:compile
,然后是 resources:resources
,然后是 javafx:run
。也事先尝试过clean:clean
。
尝试使用 JAVA_HOME(用于用户和系统)并指向单独下载的 JDK。
通过添加指向 JDK 的 <executable>path/and/stuff</executable>
显式覆盖 IntelliJ 的 Maven Runner 的指向目录
Git 已更新到当前版本。
删除了 .idea 文件夹中的所有内容。
禁用了我的防病毒软件
删除并重新制作了.iml
文件,以防与pom.xml
文件发生冲突。
通过将 Maven 的 org.apache.maven.plugins
配置/发布版本更改为 14 来覆盖目标字节码版本。
重新安装 Java。
在上述每个步骤后重新启动系统。
注意事项:
使用应用程序配置运行程序确实会正确显示场景。 运行 javafx:compile 不会产生错误或警告。 javafx:jlink 也没有(尽管如果使用 javafx-maven-plugin 版本 0.0.4 会失败并出现 not-found 错误)。 在项目创建过程中,Maven 没有settings.xml
,所以我根据网上找到的默认值创建了一个,并将其放在错误指向的文件夹中。但是,有一个 \repository
文件夹。
我遇到了几个小时的问题,修改了一些东西,然后它变成了Java.io.IOException: CreateProcess error=5, Access is denied
错误。进一步的变化带来了回到原来的错误。我所做的步骤包括在上面。提供的解决方案可能会导致上述错误再次出现。
【问题讨论】:
您的java -version
指向 Java 8,但 --module-path
选项直到 Java 9 才添加。您需要确保您使用的是 Java 9+(实际上是 Java 11+,因为您在编译时 和 运行时重新使用 JavaFX 11+)。 This answer 可以帮到你。
【参考方案1】:
感谢Slaw,我找到了问题所在。我发布解决方案以防其他人在谷歌搜索问题时偶然发现这篇文章。
虽然我的所有东西都已设置好,并且我的 JAVA_HOME 设置为在我的系统上使用 JDK 14,但 java 版本仍然指向 Java 8 (1.8.0_261)。我的系统 PATH 变量之一是 C:\ProgramData\Oracle\Java\javapath
,并且位于比指向 C:\Program Files\Java\jdk-14.0.2\bin
的系统 PATH 的上方(优先级更高)。我只是将以前的 System PATH 变量一直移到列表的底部,程序能够运行而没有任何警告或错误。
Slaw 的完整答案here 中的更多详细信息。
【讨论】:
以上是关于IntelliJ JavaFX Maven 运行:无法识别的选项:--module-path的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IntelliJ IDEA 中创建 JavaFX Maven 项目?
JavaFX 不存在使用 Java 9 和 Intellij Idea
IntelliJ + Gradle + JavaFX 构建,但未运行