我不知道我为Gluon Start做错了什么

时间:2018-10-06 22:54:39

标签: java gradle desktop gluon

阿罗哈·盖伊,

我对以Gluon开头的工作没有任何误解。

  1. 我有intellj IDEA 2018.2.4(社区版) 内部版本#IC-182.4505.22,建于2018年9月18日 JRE:1.8.0_152-release-1248-b8 amd64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM Windows 10 10.0

  2. 安装Gluon插件版本:2.7.0

  3. 文件->新建-> Projekt-> gluon->带FXML的桌面多视图Projekt-> java 11->完成

  4. install gradel Gradle 4.10.2在上次设置视图中将其用作本地选项

  5. 我使用Java版本“ 11” 2018-09-25

  6. 我下载了javaFx11(openjfx-11_windows-x64_bin-sdk),并在结构中以自由方式使用

知道我有这个->

origin

我想错了吗?

1 个答案:

答案 0 :(得分:0)

Gluon插件2.7.0不久前发布,主要用于使用Java 8创建Gluon Desktop或Gluon Mobile应用程序。

如果您现在正在使用Java 11,则在发布新版本的Gluon插件之前,您将不得不更新build.gradle文件。

我建议您在此guide中了解如何开始使用JavaFX 11,并查看此question,以了解如何将JavaFX 11添加到IntelliJ中的项目。

使用Gluon插件时,您正在创建Gradle项目。为此,您无需下载整个JavaFX SDK,可以通过Maven Central的依赖项将其包括在内。

因此,编辑您的build.gradle文件,如下所示:

apply plugin: 'java'
apply plugin: 'application'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonDesktop'

dependencies {
    compile 'com.gluonhq:particle:1.1.3'
}

并添加以下更改:

  1. 根据Gradle的指南,添加一种方法来查找哪个平台:

    apply plugin: 'java'
    apply plugin: 'application'
    
    def currentOS = org.gradle.internal.os.OperatingSystem.current()
    def platform
    if (currentOS.isWindows()) {
        platform = 'win'
    } else if (currentOS.isLinux()) {
        platform = 'linux'
    } else if (currentOS.isMacOsX()) {
        platform = 'mac'
    }
    
    repositories {
        jcenter()
        maven {
            url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
        }
    }
    
    mainClassName = 'com.gluonapplication.GluonDesktop'
    
  2. 为您的平台添加JavaFX依赖项:

    dependencies {
        compile "org.openjfx:javafx-base:11:${platform}"
        compile "org.openjfx:javafx-graphics:11:${platform}"
        compile "org.openjfx:javafx-controls:11:${platform}"
        compile "org.openjfx:javafx-fxml:11:${platform}"
    
  3. 添加与Java 9+兼容的ControlsFX依赖关系(默认情况下使用的是Java 8+的8.40.14),并添加javax.annotation依赖关系,它不属于Java 9 +:

        compile 'com.gluonhq:particle:1.1.3'
        compile 'org.controlsfx:controlsfx:9.0.0'
        compile 'javax.annotation:javax.annotation-api:1.3.1'
    }
    
  4. 根据指南,您需要添加module-path并将所需的模块添加到编译器参数中:

    compileJava {
        doFirst {
            options.compilerArgs = [
                    '--module-path', classpath.asPath,
                    '--add-modules', 'javafx.controls,javafx.fxml'
            ]
        }
    }
    
  5. 与运行参数相同。在这种情况下,可以通过--add-exports来访问私有API(由于ControlsFX的某些要求):

    run {
        doFirst {
            jvmArgs = [
                    '--module-path', classpath.asPath,
                    '--add-modules', 'javafx.controls,javafx.fxml',
                    '--add-exports', 'javafx.base/com.sun.javafx.runtime=ALL-UNNAMED',
                    '--add-exports', 'javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
                    '--add-exports', 'javafx.graphics/com.sun.javafx.scene.traversal=ALL-UNNAMED',
    
            ]
        }
    }
    

保存并同步更改,您应该可以运行Gluon Desktop项目。

Gluon Desktop