Linux Mint java and JavaFX



我正在运行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上的信息安装了javafxapt报告以下内容:

> 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。

最新更新