错误:缺少 JavaFX 运行时组件,并且需要运行该应用程序。 Jar 文件

问题描述 投票:0回答:1

我已将 JavaFx 编译为具有所有依赖项的单个 jar 文件,但出现错误。我怎么解决这个问题?我使用 Gradle 进行依赖管理。 爪哇17.0.1

Gradle code:
plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.1.0'
}

sourceSets.main.java.srcDirs = ["src/"]
sourceSets.main.resources.srcDirs = ["resources/"]

group = 'org.yoba'
version = '1.0'
mainClassName = "launcher.Launcher"

repositories {
    mavenCentral()
}

javafx {
    version = "21.0.2"
    modules = ['javafx.controls', 'javafx.web']
}

task fatJar(type: Jar) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes 'Main-Class': 'launcher.Launcher'
    }
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

dependencies {
    implementation 'com.google.code.gson:gson:2.10.1'
    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
    implementation 'org.openjfx:javafx-controls:21.0.2'
    implementation 'org.openjfx:javafx-web:21.0.2'
}

找不到合适的东西

java javafx
1个回答
0
投票

“我想我可以将 java fx SDK 添加到项目文件中,并将其添加到 gradle 脚本中。然后将所有内容打包到一个文件中。”

这是可能的。

此 GitHub 存储库包含一个 Gradle JavaFX 应用程序,其中包括一个工作 fat jar 任务:

www.github.com/davidweber411/javafx-JavaFxAppGradleNonModular

所有 JFX 依赖项都将包装在创建的 fat jar 中,因此您只需双击即可启动它。

注: 这是一种非模块化方法。

注2: 您可以使用 e 轻松地将这个 fat JAR 包装在本机可执行文件中。 G。

JPackage

© www.soinside.com 2019 - 2024. All rights reserved.