java IntelliJ JavaFX Maven运行:无法识别的选项:modulepath
当您使用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的运行程序JRE设置为相同的项目JDK(不是通过JAVA_HOME环境变量)李>
- IntelliJ终端中给出的JavaC版本是
javac 14.0.1
- IntelliJ终端中给出的Java版本是
java version "1.8.0_261"
- Maven本身并不是与IntelliJ分开安装在我的计算机上的李>
- Project是一个模块项目(带有module info.java)
- 没有插件李>
以下是我尝试/检查过的步骤:
- 使用javafx maven插件版本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已更新到当前版本李>
- 删除了数据库中的所有内容。创意文件夹李>
- 禁用我的防病毒软件
- 删除并重新制作
.iml
文件,以防与pom.xml
文件冲突李> - 通过将Maven的
org.apache.maven.plugins
配置/发布版本更改为14来覆盖目标字节码版本李> - 重新安装Java李>
- 在上述每个步骤后重新启动系统李>
值得注意的事项:
- 使用应用程序配置运行程序确实可以正确显示场景李>
- 运行javafx:compile不会产生错误或警告。javafx:jlink也是如此(尽管如果使用javafxmaven插件版本0.0.4,则会出现找不到的错误)李>
- 在项目创建期间,Maven没有
settings.xml
,因此我根据在线找到的默认值创建了一个,并将其放在错误指向的文件夹中。但是,有一个\repository
文件夹李> - 我把问题说了几个小时,修改了一些东西,然后变成了一个
Java.io.IOException: CreateProcess error=5, Access is denied
错误。进一步的更改将返回到原始错误。上面包括了我所做的步骤。提供的解决方案可能会导致上述错误再次出现李>
# 1 楼答案
多亏了Slaw,我发现了这个问题。我正在发布解决方案,以防其他人在谷歌搜索问题时无意中发现这篇文章
尽管我已经将一切和JAVA_主页设置为在我的系统上使用JDK 14,但JAVA版本仍然指向JAVA 8(1.8.0_261)。我的一个系统路径变量是
C:\ProgramData\Oracle\Java\javapath
,并且位于指向C:\Program Files\Java\jdk-14.0.2\bin
的系统路径之上(优先级更高)。我只需将前一个系统路径变量一直移动到列表的底部,程序就可以在没有任何警告或错误的情况下运行斯拉夫的完整答案here中有更多细节