You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 11命令行编译报错javafx.application包不存在如何解决?

问题原因

Java 11及以上版本的OpenJDK已经将JavaFX组件从标准JDK库中剥离,Eclipse IDE内置了JavaFX依赖配置所以可以正常编译运行,命令行直接执行javac没有指定JavaFX依赖路径就会触发包不存在的错误。

解决步骤
  • 先安装对应JDK版本的JavaFX组件,Arch Linux官方源已经提供对应Java 11的包,执行安装命令:
    sudo pacman -S java11-openjfx
    安装前可执行archlinux-java status确认当前默认JDK版本为Java 11,如果是其他版本可执行sudo archlinux-java set java-11-openjdk切换,或者安装对应你JDK版本的openjfx包。
  • 编译时指定JavaFX的模块路径和需要引入的模块,替换原有javac命令:
javac --module-path /usr/lib/jvm/java-11-openjfx/lib --add-modules javafx.graphics,javafx.controls MyApp.java

如果你后续代码用到FXML、WebView等组件,按需在--add-modules后追加javafx.fxml、javafx.web等模块即可。

  • 运行编译生成的class文件时也需要携带相同的JavaFX参数:
java --module-path /usr/lib/jvm/java-11-openjfx/lib --add-modules javafx.graphics,javafx.controls MyApp
  • 长期使用可以将模块路径和模块参数写入shell别名,或者改用Maven/Gradle等构建工具管理依赖,避免每次手动输入长命令。

内容的提问来源于stack exchange,提问作者Al1nuX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:30:04