减少我本机部署的JavaFX应用程序的大小

时间:2016-04-11 00:52:15

标签: javafx javafx-8

我正在使用JavaFX编写应用程序,并担心我本地部署的.EXE文件的大小。我所拥有的应用程序并不是那么大(总共不到5M),但是Java Runtime正在使最终安装的目录超过100M,压缩成可编程的44M文件。

我一直在使用64位Windows(Java SE 8u77)运行测试。为了使最终的可执行文件更小,我已删除了不必要的部分JRE,如下所示:http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html

这是我发现的:

  • 完成JRE:45.0 M
  • 剥离的JRE:44.0 M

有没有人对如何使可分发的.EXE更小有任何想法?我发现的所有信息至少有2或3年的历史,可能不再那么相关。我觉得可以从JRE中获得更多,但似乎这会违反许可。

有没有人有使用任何非Oracle发行版或任何其他方法来缩小JavaFX应用程序的经验?

1 个答案:

答案 0 :(得分:4)

使用javapackager时,您可以设置为不包含JRE。这使得本机启动程序使用本地安装的JRE(这可能不是最佳解决方案)。

使用javafx-maven-plugin时,您只需设置bundlerArgument:

<configuration>
    <mainClass>com.zenjava.test.Main</mainClass>
    <bundleArguments>
        <runtime /> <!-- dont include JRE, use installed one -->
    </bundleArguments>
</configuration>

使用javafx-gradle-plugin时,只需将运行时设置为NULL:

jfx {
    verbose = true
    mainClass = 'your.application.appname'
    appName = 'appname'
    jfxMainAppJarName = 'appname.jar'
    vendor = "My Company"
    bundleArguments = [
        runtime: null
    ]
}

当使用javapacker本身的ant-style xml文件时,只需设置:

<fx:bundleArgument name="runtime" value="" />

免责声明:我是javafx-maven-plugin的维护者和javafx-gradle-plugin的创建者。