MacOS上的OpenJDK8和JavaFX

问题描述

我想在只有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 + JavaFX的提供者。例如。您可以从Azul下载:https://www.azul.com/downloads/zulu-community/?version=java-8-lts&os=macos&architecture=x86-64-bit&package=jdk-fx

尽管如此,您仍应尝试升级到Java / FX的最新版本。