首页 > 解决方案 > HelloFX.java:1:错误:包 javafx.application.Application 不存在

问题描述

OS: Raspbian
CPU: RPi (armv7l)
JDK: Zulu11.31+16 (build 11.0.3+7)
JavaFX: self-built https://github.com/openjdk/jfx/archive/jdk-11+7.tar.gz

Problem:
$ export PATH_TO_FX=/usr/lib/jvm/javafx-sdk-armv6hf-11-0-7-b1/lib
$ ls $PATH_TO_FX
javafx.base.jar
javafx.controls.jar
javafx.fxml.jar
javafx.graphics.jar
javafx.media.jar
javafx-swt.jar
javafx.web.jar
<bunch of lib*.so>
$ jar -t --file $PATH_TO_FX/javafx.graphics.jar | grep Application
javafx.graphics/javafx/application/Application.class
$ export MODULES=javafx.controls,javafx.graphics
$ wget https://raw.githubusercontent.com/openjfx/samples/master/HelloFX/CLI/hellofx HelloFX.java
$ javac --module-path $PATH_TO_FX --add-modules $MODULES HelloFX.java
HelloFX.java:1: error: package javafx.application.Application does not exist
import javafx.application.Application

我检查并再次检查了 $PATH_TO_FX 和 $MODULES,它们似乎是正确的。如果我使用 -verbose 运行 javac,我会看到加载了 jdk 模块,但没有加载 jfx。

2020.12.19 更新:原来问题出在我构建的 JavaFX SDK 上。无论出于何种原因,Gradle 生成的模块 jar 都以模块名称作为根文件夹。一旦我剥离了模块名称并重新打包了 jar,SDK 就可以正常工作了。现在调查 Gradle 问题。

标签: javafxjavafx-11

解决方案


推荐阅读