【问题标题】:Linux Mint java and JavaFXLinux Mint java 和 JavaFX
【发布时间】:2019-06-25 05:15:17
【问题描述】:

我正在运行 Linux Mint 19.1 并已安装 OpenJDK 运行时环境。我没有安装 eclipse 和 this question,它没有提供足够的细节来明确 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

我该如何解决这个问题?

【问题讨论】:

  • 虽然您似乎已经安装了 JavaFX 11.0.2,但我不认为它与 JDK 11.0.3 捆绑在一起。如果它“只是”带有 JavaFX jar 和本机库的 SDK 文件夹,则必须将它们添加到模块路径中,如文档 openjfx.io/openjfx-docs 中所述。
  • @JoséPereda 我怀疑我需要告诉你这个......但如果你发表评论作为答案,我会标记它是正确的!

标签: java javafx installation


【解决方案1】:

根据你所做的:

sudo apt install openjdk-11-jdk openjfx

你已经安装了两个不同的东西:

  • 一方面,openjdk-11-jdk 基于此detail 安装最新的 JDK 11.0.3。

  • 另一方面,openjfx 根据this 安装 JavaFX 11.0.2。

如果您选择后者,您只是将 JavaFX SDK(JavaFX jar 和本机库)下载到给定位置,而不是将其与 JDK 捆绑在一起。

这解释了你得到的错误,因为 JDK 没有包含任何 JavaFX 模块:

错误:包 javafx.application 不存在

即使您尝试通过将这些文件复制到 JDK 位置来进行“手动合并”,这也不起作用。

为了直接从 SDK 使用 JavaFX 11+,您必须将 jars 添加到模块路径中,如https://openjfx.io/openjfx-docs/ 中的文档中所述。

或者,您可以使用 Maven 或 Gradle 构建工具和 JavaFX 插件,它们不需要 SDK,并且将使用 Maven Central 来检索 JavaFX 模块。

最后,如果您仍然想使用与 JDK 捆绑的 JavaFX(没有模块路径),您可以下载捆绑它的不同发行版(有一些),或者您可以“合并”JDK以及自己的 JavaFX SDK,以生成结合两者的自定义映像,如下所述:https://openjfx.io/openjfx-docs/#modular,自定义 JDK+JavaFX 映像部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2020-06-22
    • 2020-08-24
    • 2021-11-25
    相关资源
    最近更新 更多