使用没有JRE的javafx-maven-plugin Maven + Build Native

时间:2015-08-11 20:42:38

标签: java maven javafx-8

我有一个简单的JavaFX应用程序,我想为Windows机器创建一个安装程序。 javafx-maven-plugin工作并创建应用程序的可执行文件以及Windows安装程序,但问题是,它创建了一个Windows安装程序,其中包含中的JavaFX应用程序和完整的JRE

那么,如何在不使用完整的Java框架的情况下使用javafx-maven-plugin为Windows构建本机文件。也许它应该只创建一个Java Framework的依赖。这使安装程序从1.5MB扩展到200MB磁盘空间。

使用Maven我使用命令mvn clean compile jfx:build-jar jfx:native来获取Windows中的本机文件,这是我正在使用的POM文件:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo</groupId>
    <artifactId>hello-javafx-maven-example</artifactId>
    <name>JavaFX Example Maven Project</name>
    <organization>
        <name>Jaa Demo</name>
    </organization>

    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>8.1.3</version>
                <configuration>
                     <mainClass>com.demo.helloWorld</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>        
</project>

1 个答案:

答案 0 :(得分:5)

我是javafx-maven-plugin的维护者。

创建安装程序时,“按设计”是将JRE捆绑在应用程序中。我自己也偶然发现了这一点,但是尽管有oracle的当前文档,但我发现无法运行我生成的文件(使用JDK 1.8u40及更高版本,Windows)而没有将JRE放在我的本机启动器旁边。 packager.dll似乎要求它在那里。但要说清楚:这对我来说可能只是一个问题,没有经过验证,也没有对此进行调查。

回答你的问题:你可以通过传递一些bundleArguments来删除JRE:

<bundleArguments>
    <runtime />
</bundleArguments>

我自己这样做,主要是为了加速测试项目,就像这里: https://github.com/javafx-maven-plugin/javafx-maven-plugin/blob/master/src/it/03-cli-jfx-native/pom.xml#L31

编辑:请考虑升级到插件版本8.1.5,因为修复了一些错误,包括针对Linux系统上的本机启动程序的(IMHO)严重解决方法。此外,还支持在正常的maven-lifecycle中创建包:https://github.com/javafx-maven-plugin/javafx-maven-plugin/blob/master/src/it/07-lifecycle-build-jfx-native/pom.xml

相关问题