首页 > 解决方案 > 使用 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) }
    }
}

问候

标签: javalinuxwindowsgradlejavafx

解决方案


推荐阅读