【问题标题】:JAVAFX environmental variable return null in build.gradle.ktsJAVAFX 环境变量在 build.gradle.kts 中返回 null
【发布时间】:2021-05-14 21:23:44
【问题描述】:

我正在为 JavaFX 应用程序使用以下 build.gradle.kts

plugins {
    kotlin("jvm") version "1.4.30"
    id("application")
    id("org.openjfx.javafxplugin") version "0.0.9"
}

repositories {
    mavenCentral()
}

javafx {
    version = "11"
    modules("javafx.controls", "javafx.fxml")
    sdk = System.getenv("JAVAFX")
    if (sdk == null || sdk2.isBlank()) {
       throw InvalidUserDataException("JAVAFX environment variable is not set. JAVAFX = $sdk")

    }
    application {
        mainClass.set("example.Main")
        applicationName = "Main"
        applicationDefaultJvmArgs = listOf(
            "--module-path=${sdk}${File.separator}lib",
            "--add-modules=javafx.controls,javafx.fxml" )

        println("applicationDefaultJvmArgs:$applicationDefaultJvmArgs")
    }
}

dependencies {
    implementation(kotlin("stdlib"))
}

我已经在 .bashrc 中设置了环境变量,如下所示

export JAVAFX=$HOME/path/to/JavaFX/SDK

当我执行echo $JAVAFX 时,我得到了JavaFX SDK 路径,但我仍然在build.gradle.kts 中得到null

也试过重启 IntelliJ idea,还是一样。

【问题讨论】:

  • 您可能还需要杀死 Gradle 在后台启动的所有 Java 进程。根据您的系统,打开任务管理器并杀死和逗留 Java 进程。
  • @FranciscoMateo 看来你是对的,现在它工作正常。你可以写一个答案让我接受。

标签: gradle javafx gradle-kotlin-dsl


【解决方案1】:

开箱即用,Gradle 将在后台生成一个 Java 进程。通常这是Gradle Daemon,但可能还有更多。

因此,为了确保看到新的环境变量,最好终止所有在后台运行的 Java 进程。根据您的系统,打开任务管理器并杀死和逗留 Java 进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 2020-01-02
    • 2016-11-11
    • 1970-01-01
    • 2020-09-04
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多