我有一個腳本 build.gradle,它在創建支持 Gradle 的 JavaFX 專案時創建了 IDEA 開發環境:
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.10'
id 'org.beryx.jlink' version '2.24.4'
id 'org.javamodularity.moduleplugin' version '1.8.10' apply false
}
group 'com.prototype'
version '1.0'
repositories {
mavenCentral()
}
ext {
junitVersion = '5.8.2'
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
sourceCompatibility = '17'
targetCompatibility = '17'
}
application {
mainModule = 'com.prototype.simulationcrystalgrowth'
mainClass = 'com.prototype.simulationcrystalgrowth.SimulationApplication'
}
javafx {
version = '17.0.1'
modules = ['javafx.controls', 'javafx.fxml', 'javafx.web']
}
dependencies {
implementation('org.controlsfx:controlsfx:11.1.1')
implementation('com.dlsc.formsfx:formsfx-core:11.4.2') {
exclude(group: 'org.openjfx')
}
implementation('net.synedra:validatorfx:0.2.1') {
exclude(group: 'org.openjfx')
}
implementation('org.kordamp.ikonli:ikonli-javafx:12.2.0')
implementation('org.kordamp.bootstrapfx:bootstrapfx-core:0.4.0')
implementation('eu.hansolo:tilesfx:17.0.11') {
exclude(group: 'org.openjfx')
}
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
}
test {
useJUnitPlatform()
}
jlink {
imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'app'
}
}
jlinkZip {
group = 'distribution'
}
“build”任務完成后,build檔案夾中出現“distributions”檔案夾。它包含一個包含以下內容的 zip 存檔:

bin 檔案夾包含兩個腳本,sh 和 bat。據我了解,lib 檔案夾包含所有必需的 jar 模塊。如果 JAVA_HOME 在我的環境中安裝在 Java 17 上,那么在執行 bat 腳本時,我的程式就會啟動。我希望 jlink 是一種對用戶更友好的應用程式組裝和打包的類似物,這將有助于創建類似于 exe 應用程式啟動器的東西。
我還注意到在 build.gradle 中沒有與 jlink 相關的任務,在使用“build”任務的構建程序中沒有被呼叫。

我試圖自己運行它們,但我得到了同樣的錯誤:

我對 build.gradle 中提到的“distributions/app”路徑感到困惑,我希望在構建之后應該還有其他東西。
我究竟做錯了什么?我應該使用 jlink 在輸出中得到什么?
uj5u.com熱心網友回復:
問題已經解決了。
模塊的排除org.openjfx已從所有依賴項中洗掉。
有用的鏈接:
https://openjfx.io/openjfx-docs/#gradle
https://github.com/openjfx/samples
https://developer.tizen.org/development/articles/openjdk-and-openjfx-installation-guide
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/490138.html
上一篇:不列印執行任務的順序
下一篇:FirebaseApp未初始化
