如何构建可执行的 JavaFX 11 应用程序

How to build a executable JavaFX 11 application

问题

我无法在 IntelliJ 上创建“JavaFX 应用程序”工件 IDEA,它 给出“'javafx:deploy' 未在此 SDK 中实现。”错误。

我不想使用 Maven/Gradle 因为; 使用 Maven:我无法使用我的本地 jar 库,我尝试使用 Jitpack 作为库包括在内,在 POM 中添加一些东西,但是 none 它们有效。 使用 Gradle:我不明白 Gradle,但我认为它与 maven(本地库)有同样的问题。 所以我需要一个没有 Maven/Gradle.

的解决方案

详情

我尝试创建“JAR 应用程序”工件并构建了它,但 运行 无法通过双击或控制台命令构建它。我确定我正确安装和配置了 JavaFX 和 jmods。

我想要的

构建 JavaFX 可执行文件,运行不需要控制台命令。

系统属性

没有 Gradle/Maven 就不是解决方案,但我强烈建议您尝试使用 Gradle。新建一个 Gradle 项目(如果你使用 IntelliJ 很容易),你只需要在 build.gradle 文件中添加依赖项。我使用 JavaFX 制作 Gradle 项目的示例:

plugins {
    // Apply the application plugin to add support for building a CLI application in java.
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.9'
}

repositories {
    mavenCentral()
}

dependencies {
    // This dependency is used by the application
    implementation 'com.google.guava:guava:29.0-jre'
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'

    // Use JUnit test framework
    testCompile('org.junit.jupiter:junit-jupiter-api:5.3.1')
    testCompile('org.junit.jupiter:junit-jupiter-engine:5.3.1')

}

run {
    standardInput = System.in
}

application {
    mainClass = "com.Nephty.main"
}

javafx {
    version = "15.0.1"
    modules = [ 'javafx.controls' , 'javafx.fxml' , 'javafx.media' ]
}

两个重点:存储库、应用程序和 javafx。

在存储库中,您可以指定要从中下载库的存储库,这样您就不必将它们保存在本地计算机上。这有助于共享您的程序,因为其他用户不必自己下载和设置 JavaFX(这对于不懂技术的人来说是不可能的)。

在 JavaFX 中,指定要使用的模块和版本。

在应用程序中,您指定主要 class,这将是 运行。

然后,您可以执行控制台命令:graldew.bat 运行(将 cwd 作为您的项目目录)或使用 IntelliJ 中易于访问的任务。之后,您可以创建一个快捷方式,该快捷方式将自动 运行 控制台命令,而无需您打开控制台并输入所有内容。如果您是唯一要使用您的应用程序的人,这与拥有可执行文件相同(如果我们只关心使用该程序)。

有一个应用程序可以帮助为 java 应用程序构建可执行文件。 This 视频解释。

希望你能在这里找到你要找的东西。如果没有,请不要介意回复,这样我们就可以想办法解决问题。

只需要jpackage。这是文档的 link。 https://docs.oracle.com/en/java/javase/16/jpackage/packaging-overview.html#GUID-C1027043-587D-418D-8188-EF8F44A4C06A