我正在运行Linux Mint 19.1并安装了OpenJDK运行时环境。我没有安装日食,这个问题没有提供足够的细节来清楚地表明OP的问题实际上是什么,尽管标题为标题,但似乎并不特别相关。
> java --version
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)
自安装Java以来,我还使用Ask Ubuntu上的信息安装了javafx
。apt
报告以下内容:
> sudo apt install openjdk-11-jdk openjfx
...
openjdk-11-jdk is already the newest version (11.0.3+7-1ubuntu2~18.04.1).
openjfx is already the newest version (11.0.2+1-1~18.04.2).
我现在遇到的问题是行import javafx;
会导致以下错误:
> java CheckJavaFX.java
CheckJavaFX.java:1: error: package javafx.application does not exist
import javafx.application.Application;
^
1 error
error: compilation failed
如何解决问题?
基于您所做的事情:
sudo apt install openjdk-11-jdk openjfx
您已经安装了两件事:
在一侧,
openjdk-11-jdk
基于此细节安装了最新的JDK 11.0.3。在另一个上,
openjfx
根据此安装Javafx 11.0.2。
如果您检查了后者,则只是下载Javafx SDK(Javafx Jars和本机库(到给定的位置,但您并不是与JDK捆绑。
此解释您遇到的错误,因为JDK没有任何Javafx模块:
错误:软件包Javafx.Application不存在
即使您尝试通过将这些文件复制到JDK位置来进行"手动合并",也无法使用。
为了直接从SDK使用Javafx 11 ,您必须将罐子添加到模块路径中,就像文档中在https://openjfx.io/openjfx-docs/的文档中所解释的那样。
另外,您可以使用Maven或Gradle Build Tools和Javafx插件(不需要SDK(,并且将使用Maven Central检索Javafx模块。
最后,如果您想使用与JDK捆绑的Javafx(无模块路径(,则可以下载捆绑它的其他分布(那里有一些(,或者您可以"合并" JDK和javafx sdk自己,生成一个结合两者的自定义图像,如下所述:https://openjfx.io/openjfx-docs/#modular,section sufter jdk jdk javafx image。