【问题标题】:How to deploy a self-contained JavaFX application without using Maven/Gradle/IDEs?如何在不使用 Maven/Gradle/IDE 的情况下部署自包含的 JavaFX 应用程序?
【发布时间】:2022-08-10 03:08:09
【问题描述】:

我正在使用以下方法开发一个简单的 JavaFX 项目:视窗,VSCode/PowerShell,Java SDK 17.0.2,JavaFX SDK 17.0.2.

这是我的项目结构:

bin/
    snaptools/
        Controller.class
        Main.class
        SnapTransceiver.class
        icon.png
        snaptools.fxml
lib/
    openjfx-17.0.2_windows-x64_bin-sdk/
        ...
    jSerialComm-2.9.1.jar
    snaprotocol-1.0.0.jar
src/
    snaptools/
        Controller.java
        Main.java
        SnapTransceiver.java
        icon.png
        snaptools.fxml

我可以使用以下命令行编译项目:

javac -encoding UTF-8 -d bin --class-path \"lib/jSerialComm-2.9.1.jar;lib/snaprotocol-1.0.0.jar\" --module-path lib/openjfx-17.0.2_windows-x64_bin-sdk/javafx-sdk-17.0.2/lib --add-modules javafx.controls,javafx.fxml src/snaptools/*.java

我可以使用以下命令行运行程序:

java --class-path \"bin;lib/jSerialComm-2.9.1.jar;lib/snaprotocol-1.0.0.jar\" --module-path lib/openjfx-17.0.2_windows-x64_bin-sdk/javafx-sdk-17.0.2/lib --add-modules javafx.controls,javafx.fxml snaptools.Main

我的项目差不多完成了。我只需要打包它。不幸的是,似乎每个人都在使用 Maven/Gradle 和特定于 IDE 的技巧(Eclipse、NetBeans、IntelliJ)。我不想依赖这些方法。

我想要的是:

  • 没有安装过程的可执行 .exe 文件(一个只执行和最好什么都不提取)。
  • 不使用 Maven/Gradle(我可能会将所有内容都放在一个 makefile 中)。
  • 无需使用特定的 IDE(我使用 VSCode,但我也不想依赖它)。
  • 可以通过常规终端上的命令行来完成。
  • 包含它需要执行的一切(用户不需要安装任何东西)。

可能吗?顺便说一句,我也一直在搞乱 Launch4j、jpackage 和 jlink,但无法弄清楚。

  • Maven/Gradle是Java 世界的“makefile”。这两个工具都独立于 IDE 运行。
  • 使用warp 从jlink image 创建您的exe。 How to create a standalone .exe in Java (that runs without an installer and a JRE) 有一个演示。如果您不想使用 maven,请用您想要的任何内容替换该答案的 maven 部分。
  • 我注意到您在类路径上使用了一些非模块化 jar,它们不适用于 jlink。如果您愿意,您可以研究解决该问题的方法(这些方法非常难看,我没有具体的建议)。
  • 我想知道帮助那些显然走在错误轨道上的人们取得进步是否真的有意义。他们只会有更长的路要走。
  • @BasilBourque 是的,我知道,我只是想坚持使用旧品牌,因为我是一名 C 程序员......

标签: java javafx deployment command-line


【解决方案1】:

抱歉,如果您已经遇到它,但您可能会发现查看 https://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm 很有用

本指南提供有关构建、打包和部署 JavaFX 应用程序的基本和高级信息。 JavaFX 部署不需要您的应用程序中的特殊代码,并且与 Java 部署有许多其他差异。即使您是高级 Java 开发人员,查看入门页面也是一个好主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 2015-08-17
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2013-02-10
    • 2019-08-27
    • 2017-03-13
    相关资源
    最近更新 更多