OpenJdK 8 - 无法编译包 javafx.util 不存在
OpenJdK 8 - Can't compile package javafx.util does not exist
Linux Mint 20.3
os.name = Linux
os.arch = amd64
os.version = 5.13.0-25-generic
Java :
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
Maven 3.8.3
我通过 Maven 构建我的 java 项目。
当我尝试通过 OpenJdk 1.8.0_322
编译我的 java 项目时:
package com.myproject;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javafx.util.Pair; // here error
@SuppressWarnings("rawtypes")
public interface SomeMyInterface {
// some code here
Map<Integer, List<Pair<Integer,Integer>>> findAllMgIdsAssociatedNsPairs();
}
我收到错误:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /SomeMyInterface.java:[10,19] package javafx.util does not exist
P.S。如果我使用来自 Oracle 的 jdk1.8.0_202
项目成功编译!
P.P.S。项目必须编译java 8. 客户要求。
tl;博士
或者:
在包含 OpenJFX 库的 JDK 上 - Develop/deploy。
- 将 OpenJFX 库添加到您的 Java 项目。
详情
JavaFX 从未成为 Java SE 的官方部分。
有一段时间 Oracle 将他们的 JavaFX 库连同他们的 JDK。他们后来停止了捆绑销售。
您需要将 JavaFX 的实现添加到您的项目中。您会在 Gluon 和 Oracle 的 OpenJFX. This open-source project is housed as a subproject on the OpenJDK 项目 co-led 中找到这样的实现。
使用您选择的依赖项管理器,例如 Apache Maven 或 Gradle,将 OpenJFX 库添加到您的项目中。下面我放置了 OpenJFX 11 到 17 的 Maven 存储库链接,但这些链接需要 Java 11+。我还没有找到 JavaFX/OpenJFX 的 Java 8.
的任何 Maven 回购链接
或者,您可以在捆绑了 OpenJFX 库的 JDK 上进行开发和部署。至少有两家供应商提供带有此类捆绑包的 JDK 产品版本:
- ZuluFX 来自 Azul Systems
- 参见 this downloads list for Java 8 on macOS,Linux,和 Windows。请注意下载列表顶部的 Java Package 筛选字段。
- LibericaFX 作者:BellSoft
- 在 Downloads page 上,为捆绑 OpenJFX 的版本选择 Full 选项。适用于 macOS 上的 Java 8、Linux 和 Windows.
如果可能的话,考虑从 Java8 开始。我建议转到 Java、11 和 17 的较新 LTS 版本,以及 OpenJFX 的最新 LTS 版本 17,后者需要 Java 11 或更高版本。 Java 和 JavaFX 近年来都发生了很大的变化。此演变包括 jlink and jpackage 工具,可将您的 JavaFX 应用程序打包为单个“double-clickable”应用程序,其中包含 运行 所需的 JDK/JVM 的最少部分特定平台。
版本
对于 OpenJFX 版本 11 到 17,Java 11 或更高版本是 required/recommended。参见 Release Notes。
OpenJFX 11 到 18 的 Maven 链接可以是 found here,在其他 Maven 存储库上也是如此。
OpenJFX 版本 14 到 18 的源代码可以是 found on GitHub site for OpenJDK. Source code for older versions 2, 8, 9, and 10 can be found on the read-only Mercurial OpenJDK 的存储库。
Linux Mint 20.3
os.name = Linux
os.arch = amd64
os.version = 5.13.0-25-generic
Java :
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
Maven 3.8.3
我通过 Maven 构建我的 java 项目。
当我尝试通过 OpenJdk 1.8.0_322
编译我的 java 项目时:
package com.myproject;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javafx.util.Pair; // here error
@SuppressWarnings("rawtypes")
public interface SomeMyInterface {
// some code here
Map<Integer, List<Pair<Integer,Integer>>> findAllMgIdsAssociatedNsPairs();
}
我收到错误:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /SomeMyInterface.java:[10,19] package javafx.util does not exist
P.S。如果我使用来自 Oracle 的 jdk1.8.0_202
项目成功编译!
P.P.S。项目必须编译java 8. 客户要求。
tl;博士
或者:
-
在包含 OpenJFX 库的 JDK 上
- Develop/deploy。
- 将 OpenJFX 库添加到您的 Java 项目。
详情
JavaFX 从未成为 Java SE 的官方部分。
有一段时间 Oracle 将他们的 JavaFX 库连同他们的 JDK。他们后来停止了捆绑销售。
您需要将 JavaFX 的实现添加到您的项目中。您会在 Gluon 和 Oracle 的 OpenJFX. This open-source project is housed as a subproject on the OpenJDK 项目 co-led 中找到这样的实现。
使用您选择的依赖项管理器,例如 Apache Maven 或 Gradle,将 OpenJFX 库添加到您的项目中。下面我放置了 OpenJFX 11 到 17 的 Maven 存储库链接,但这些链接需要 Java 11+。我还没有找到 JavaFX/OpenJFX 的 Java 8.
的任何 Maven 回购链接或者,您可以在捆绑了 OpenJFX 库的 JDK 上进行开发和部署。至少有两家供应商提供带有此类捆绑包的 JDK 产品版本:
- ZuluFX 来自 Azul Systems
- 参见 this downloads list for Java 8 on macOS,Linux,和 Windows。请注意下载列表顶部的 Java Package 筛选字段。
- LibericaFX 作者:BellSoft
- 在 Downloads page 上,为捆绑 OpenJFX 的版本选择 Full 选项。适用于 macOS 上的 Java 8、Linux 和 Windows.
如果可能的话,考虑从 Java8 开始。我建议转到 Java、11 和 17 的较新 LTS 版本,以及 OpenJFX 的最新 LTS 版本 17,后者需要 Java 11 或更高版本。 Java 和 JavaFX 近年来都发生了很大的变化。此演变包括 jlink and jpackage 工具,可将您的 JavaFX 应用程序打包为单个“double-clickable”应用程序,其中包含 运行 所需的 JDK/JVM 的最少部分特定平台。
版本
对于 OpenJFX 版本 11 到 17,Java 11 或更高版本是 required/recommended。参见 Release Notes。
OpenJFX 11 到 18 的 Maven 链接可以是 found here,在其他 Maven 存储库上也是如此。
OpenJFX 版本 14 到 18 的源代码可以是 found on GitHub site for OpenJDK. Source code for older versions 2, 8, 9, and 10 can be found on the read-only Mercurial OpenJDK 的存储库。