为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX 11:使用Gradle创建一个jar文件

JavaFX 11:使用Gradle创建一个jar文件

桃花长相依 2019-11-02 10:36:32
我正在尝试将JavaFX项目从8 Java版本升级到11版本。当我使用“运行” Gradle任务(遵循Openjfx教程)时,它可以工作,但是当我构建(使用“ jar” Gradle任务)并执行(使用“ java -jar”)一个jar文件时,消息“错误” :缺少JavaFX运行时组件,并且是运行此应用程序所必需的”。这是我的build.gradle文件:group 'Project'version '1.0'apply plugin: 'java'sourceCompatibility = 1.11repositories {    mavenCentral()}def currentOS = org.gradle.internal.os.OperatingSystem.current()def platformif (currentOS.isWindows()) {    platform = 'win'} else if (currentOS.isLinux()) {    platform = 'linux'} else if (currentOS.isMacOsX()) {    platform = 'mac'}dependencies {    compile "org.openjfx:javafx-base:11:${platform}"    compile "org.openjfx:javafx-graphics:11:${platform}"    compile "org.openjfx:javafx-controls:11:${platform}"    compile "org.openjfx:javafx-fxml:11:${platform}"}task run(type: JavaExec) {    classpath sourceSets.main.runtimeClasspath    main = "project.Main"}jar {    manifest {        attributes 'Main-Class': 'project.Main'    }    from {        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }    }}compileJava {    doFirst {        options.compilerArgs = [                '--module-path', classpath.asPath,                '--add-modules', 'javafx.controls,javafx.fxml'        ]    }}run {    doFirst {        jvmArgs = [                '--module-path', classpath.asPath,                '--add-modules', 'javafx.controls,javafx.fxml'        ]    }}你知道我该怎么办吗?
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

使用最新版本的JavaFX,您可以使用两个Gradle插件轻松分发您的项目(javafxplugin和jlink)。


使用这些插件,您可以:


创建一个包含所有必需的jar文件的可分发zip文件:它需要执行JRE(使用bash或批处理脚本)

为给定的操作系统使用Jlink创建本机应用程序:不需要JRE来执行它,因为Jlink在分发文件夹中包含“轻型” JRE(仅包括所需的Java模块和依赖项)

如果您想举一个例子,我在bitbucket上做了一个例子。


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 1103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信