我已将 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 fx SDK 添加到项目文件中,并将其添加到 gradle 脚本中。然后将所有内容打包到一个文件中。”
这是可能的。
此 GitHub 存储库包含一个 Gradle JavaFX 应用程序,其中包括一个工作 fat jar 任务:
www.github.com/davidweber411/javafx-JavaFxAppGradleNonModular
所有 JFX 依赖项都将包装在创建的 fat jar 中,因此您只需双击即可启动它。
注: 这是一种非模块化方法。
注2: 您可以使用 e 轻松地将这个 fat JAR 包装在本机可执行文件中。 G。
JPackage
。