有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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)
  • 没有插件

以下是我尝试/检查过的步骤:

  1. 使用javafx maven插件版本0.0.1到0.0.4
  2. 使用了一个单独下载的JDK副本(从Oracle的网站上),并将所有内容都指向了这一点
  3. 将语言级别和目标字节码设置为11
  4. 试用了JavaFX版本12.0.2和14
  5. 尝试运行Maven的compile:compile然后resources:resources然后javafx:run。还事先尝试了clean:clean
  6. 尝试使用JAVA_HOME(针对用户和系统)并指向单独下载的JDK
  7. 通过添加指向JDK的<executable>path/and/stuff</executable>,显式地重写IntelliJ的Maven Runner的指向目录
  8. Git已更新到当前版本
  9. 删除了数据库中的所有内容。创意文件夹
  10. 禁用我的防病毒软件
  11. 删除并重新制作.iml文件,以防与pom.xml文件冲突
  12. 通过将Maven的org.apache.maven.plugins配置/发布版本更改为14来覆盖目标字节码版本
  13. 重新安装Java
  14. 在上述每个步骤后重新启动系统

值得注意的事项:

  • 使用应用程序配置运行程序确实可以正确显示场景
  • 运行javafx:compile不会产生错误或警告。javafx:jlink也是如此(尽管如果使用javafxmaven插件版本0.0.4,则会出现找不到的错误)
  • 在项目创建期间,Maven没有settings.xml,因此我根据在线找到的默认值创建了一个,并将其放在错误指向的文件夹中。但是,有一个\repository文件夹
  • 我把问题说了几个小时,修改了一些东西,然后变成了一个Java.io.IOException: CreateProcess error=5, Access is denied错误。进一步的更改将返回到原始错误。上面包括了我所做的步骤。提供的解决方案可能会导致上述错误再次出现

共 (1) 个答案

  1. # 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中有更多细节