java - Linux Mint Java 和 JavaFX

标签 java javafx installation

我正在运行 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 上找到的信息安装了 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,基于此 detail .

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

如果选中后者,则只是将 JavaFX SDK(JavaFX jar 和 native 库)下载到给定位置,但并未将其与 JDK 捆绑在一起。

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

error: package javafx.application does not exist

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

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

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

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

关于java - Linux Mint Java 和 JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56747218/

相关文章:

checkbox - JavaFX CSS 复选框样式

Linux命令行图形

ios - 无法在现有的 Xcode 项目中安装 cocoaPods

java - 警告 : No mapping found for HTTP request with URI spring framework

Java 中给定字符在数组中的出现次数

java - webView JavaFX 访问时重定向某个 URL

java - 从头开始创建模式对话框

php - Mac 上 memcached 的 GUI 安装程序?

java.lang.ClassCastException : oracle. jdbc.driver.T4CConnection 无法转换为 com.arjuna.ats.internal.arjuna.recovery.Connection

java - 属性文件未反射(reflect)使用 Apache Commons Configuration 修改的更改