【问题标题】:OpenJDK8 and JavaFX on MacOSMacOS 上的 OpenJDK8 和 JavaFX
【发布时间】:2020-12-29 17:35:41
【问题描述】:

我想在只有 OpenJDK8 的 macOS 上运行 JavaFX 应用程序:

  • 我在互联网上搜索,我只找到了 Linux 的解决方案(使用 apt-get),
  • 我无法升级到 OpenJDK>8,也无法切换到 Oracle 发行版(上下文限制)。

** 编辑 ** 问题是,如果我使用 OracleSDK8 运行应用程序,它工作得非常好。但是如果我使用 OpenJDK8 运行它,我在包含 JavaFX 时会遇到问题。例如:

FilterEditor.java:6: error: package javafx.scene.input does not exist
import javafx.scene.input.KeyEvent;

我正在使用 Gradle 脚本

jar {
     if(JavaVersion.current() >= JavaVersion.VERSION_11){
       apply plugin: 'org.openjfx.javafxplugin'
       javafx {
        version = "11"
        modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.swing' ]
      }
      }else if(JavaVersion.current() != JavaVersion.VERSION_1_8){
        throw new GradleException("This build script must be run with java 8 or a java version >= 11")
      }
  destinationDir = projectDir
  manifest.attributes 'Main-Class': project.mainClassName
  baseName = 'XXX'
  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  }
}

但是如果我使用 OpenJDK8 会失败。

【问题讨论】:

  • 还有……有什么问题?安装 OpenJDK 8?
  • @dan1st JavaFX 部分似乎在 MacOS for OpenJDK 8 上缺失。
  • 你是对的@dan1st(问题在我心里很清楚)。我已经编辑了问题。

标签: java macos gradle java-8 java-11


【解决方案1】:

有几个 OpenJDK + JavaFX 提供者。例如。你可以从 Azul 下载:https://www.azul.com/downloads/zulu-community/?version=java-8-lts&os=macos&architecture=x86-64-bit&package=jdk-fx

不过,您应该尝试升级到 Java/FX 的更新版本。

【讨论】:

  • 换句话说:JavaFX 不是 OpenJDK 的一部分。您可以下载 OpenJFX 并将其包含在程序中,或者使用包含 OpenJFX 的 OpenJDK 版本。
  • @dan1st 这并不完全正确,因为您只能将 JavaFX 添加为 Java >= 11 的外部依赖项。对于 Java 8,最好寻找已经包含 JavaFX 的发行版。跨度>
猜你喜欢
  • 2021-03-29
  • 2019-06-07
  • 2021-07-27
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多