java - Mac OS上的OpenJDK8和JavaFX

标签 java macos gradle java-8 java-11

我想在只有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的最新版本。

    关于java - Mac OS上的OpenJDK8和JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63842928/

    相关文章:

    macos - 如何在 Mac 上的 docker 中运行 meteor 应用程序?

    macos - 无法在 Mac OS X 中运行 cassandra 集群管理器 : UnavailableSocketError

    android - Android Studio 2 中的 Gradle 缓存目录位置

    java - Hibernate 反向一对多映射似乎无法正确处理从 Java 列表中删除项目

    java - 从外部模块访问资源文件

    java - 将 JUnit 结果打印到文件

    objective-c - 从 NSTextField 子类调用 NSObject 方法?

    java - 如何使用 Jersey 发布字符串数组

    android - Gradle 同步问题 : None of the consumable configurations have attributes

    java - 从Java 8升级到11,为什么spring测试组件无法正常扫描?