java - 如何为 MacOS 选择正确的 javafx-base*.jar 变体?
问题描述
我有下一个build.gradle脚本:
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
id "org.beryx.jlink" version "2.17.5"
}
group 'com.alcoholics'
version '1.0-SNAPSHOT'
application {
applicationDefaultJvmArgs = [
"--add-opens=javafx.base/com.sun.javafx.runtime=org.controlsfx.controls",
"--add-opens=javafx.base/com.sun.javafx.collections=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls",
"--add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls",
"--add-opens=javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls",
"--add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls",
"--add-opens=javafx.controls/javafx.scene.control.skin=org.controlsfx.controls"
]
}
javafx {
version = '14'
modules("javafx.controls", "javafx.fxml")
}
jlink {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'vodka'
}
}
mainClassName = 'shitfaced/com.alcoholics.shitfaced.App'
repositories {
mavenCentral()
}
dependencies {
compile 'org.controlsfx:controlsfx:11.0.1'
compile 'org.webjars:font-awesome:5.13.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
当我运行我的应用程序时一切正常,但在Tasks -> build -> jlink上我得到:
Error: Two versions of module javafx.base found in /Users/shitfaced/Projects/shitfaced/build/jlinkbase/jlinkjars (javafx-base-14-mac.jar and javafx-base-14-linux.jar)
如何在我的build.gradle中指定MacOS的变体,甚至让 Gradle 自动为当前平台选择正确的库变体?
解决方案
推荐阅读
- c++ - 实例化对象的不同方式有哪些优缺点?
- python - python和距离计算
- php-curl - PHP CURL 因 Kubernetes CronJob 中的操作超时而失败
- flutter - 使用 Flutter web 绘制 ECG 标签和 ECG
- java - Spring中的LazyInitializationException(不经常抛出)
- python - 为日期范围内的每个值创建一个包含数组数据的 DataFrame
- python-3.x - 为什么诅咒中的窗口不更新?
- mysql - 如何获取不同的记录,但仅基于 MySQL 中的前 2 位数字
- python - 导入文件时出错:OSError: [WinError 126] The specified module could not be found
- javascript - 当事件侦听器中的计数器达到 0 时播放声音