【问题标题】:How to avoid warning using the javafx-maven-plugin to create executable without installer for Windows?如何避免使用 javafx-maven-plugin 在没有 Windows 安装程序的情况下创建可执行文件的警告?
【发布时间】:2026-01-12 01:05:02
【问题描述】:

在我们的项目中,我们使用Maven plugin javafx-maven-plugin 为我们的JavaFX 应用程序创建一个本机可执行文件。我们的配置如下所示:

<plugin>
  <groupId>com.zenjava</groupId>
  <artifactId>javafx-maven-plugin</artifactId>
  <version>8.8.3</version>
  <configuration>
    <vendor>our company</vendor>
    <mainClass>foo.bar.MainClass</mainClass>
  </configuration>
</plugin>

运行 ``mvn jfx:native'' 后,一个可执行的 EXE 文件被成功创建。该可执行文件没有我们想要的安装程序例程。但是,构建日志警告我们不要使用安装程序构建器:

[INFO] Skipping 'EXE Installer' because of configuration error 'Can not find Inno Setup Compiler (iscc.exe).'
Advice to fix:   Download Inno Setup 5 or later from http://www.jrsoftware.org and add it to the PATH.
[INFO] Skipping 'MSI Installer' because of configuration error 'Can not find WiX tools (light.exe, candle.exe).'
Advice to fix:   Download WiX 3.0 or later from http://wix.sf.net and add it to the PATH.

有没有办法告诉插件我们明确不希望创建安装程序来避免这些警告?

这些警告不是什么大问题,但我们会尽量让我们的项目保持干净。

更新一:为了在maven打包阶段创建可执行文件,我添加了如下配置(由http://javafx-maven-plugin.github.io提议):

<executions>
  <execution>
  <!-- required before build-native -->
    <id>create-jfxjar</id>
    <phase>package</phase>
    <goals>
      <goal>build-jar</goal>
    </goals>
  </execution>
  <execution>
    <id>create-native</id>
    <phase>package</phase>
    <goals>
      <goal>build-native</goal>
    </goals>
  </execution>
</executions>

【问题讨论】:

    标签: windows javafx executable


    【解决方案1】:

    这可以通过直接设置想要的捆绑器来避免。

    <plugin>
        <groupId>com.zenjava</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>8.8.3</version>
        <configuration>
            <vendor>our company</vendor>
            <mainClass>foo.bar.MainClass</mainClass>
            <!-- win.app | linux.app | mac.app | exe | msi | rpm | deb -->
            <bundler>win.app</bundler>
        </configuration>
    </plugin>
    

    免责声明:我是该项目的维护者

    【讨论】:

    • 感谢您的帮助,谢谢。但是,当我使用打包程序 win.app 时,我收到另一个警告,指出“[警告]没有找到给定 id win.app 的打包程序。请检查您的配置。我还添加了执行配置以在 maven 的打包阶段创建捆绑器。请参阅更新 1。
    • 这很奇怪,你确定你在windows上安装了OracleJDK吗?哪个版本?
    • 是的,我使用 Oracle 的原始 JKD。我使用 JDK 1.8 并且刚刚安装了最新的 Update 152。我再次尝试了,同样的警告出现了。作为输出,我得到 jfx/app/my-program.jar 以及另一个用于依赖库的子文件夹。但是,可执行文件不存在。缺少子文件夹 javafx/native。我使用的是 Windows 7 Professional 64 位。
    • @FibreFoX 我收到相同的警告“[警告] 找不到给定 id win.app 的捆绑程序。请检查您的配置。”并且还使用 oracle jdk 1.8.0_202。 (64 位)。有什么解决办法吗?
    • 现在我再次删除了捆绑标签(因此仍然收到警告),但结果是在以下文件夹中生成的:target\jfx\native\myApp
    最近更新 更多