java - 使用 Gradle 在 Linux 服务器上部署 JavaFX11 for Windows
问题描述
我想将 JavaFX 8 项目迁移到 JavaFX 11 项目中,并且不得不解决一些部署问题。
花费数小时后,我可以在我的 Windows pc 上成功部署和运行我的 JavaFX11 应用程序作为 fatjar。
但是现在我必须在 linux 服务器上部署应用程序,但它可以在 windows pc 上使用。
因此错误又回来了。我注意到在 linux 上构建时相同的 jar 包含一些 .so 文件,而在 Windows 上构建时则包含一些 .dll 文件。
在阅读了一些类似的其他问题后,我认为这是问题所在。我的项目包括 JavaFX11 的 gradle 依赖项,这些依赖项依赖于平台,并且由于构建服务器的当前操作系统而自动下载为 linux 版本。
有没有办法强制 gradle 为 JavaFX11 加载 windows 依赖项,即使是在 linux 服务器上构建的?
顺便说一句,这是我的 gradle.build:
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
id 'org.beryx.jlink' version '2.17.2'
}
dependencies{
/* Some dependencies..*/
}
javafx {
version = "11"
modules = [ 'javafx.controls', 'javafx.fxml']
}
jlink {
launcher {
name = 'exe_name'
}
}
mainClassName = 'test.Launcher'
jar {
manifest {
attributes(
'Main-Class': 'test.Launcher'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
问候
解决方案
推荐阅读
- spring - 我的 authenticationTokenFilterBean 在非受保护端点上被调用
- google-sheets - 谷歌表格 IMPORTXML 的价格
- git - 如何将下载的 ZIP 项目从 bitbucket 推送到 Github?
- javascript - Javascript 图像未显示在网站上
- html - 如何在大屏幕上使 bootstrap 4 轮播图像变小
- python - 如何用 groupby 插入缺失值?
- javascript - 将加密 hmac 转换为 crypto-js hmac 字符串
- reactjs - 如何使用 Azure AD B2C 在 react-aad-msal 中使用“忘记密码”?
- docker - 我可以在 Dockerfile 中创建一个临时变量并在以后重用它吗?
- android - ConstraintLayout TextView 截断文本