Maven+;使用javafxmaven插件构建本机而不使用JRE
我有一个简单的JavaFX应用程序,我想为Windows机器创建一个安装程序。Maven+;使用javafxmaven插件构建本机而不使用JRE,java,maven,javafx-8,Java,Maven,Javafx 8,我有一个简单的JavaFX应用程序,我想为Windows机器创建一个安装程序。javafxmaven插件可以与Windows安装程序一起工作并创建应用程序的可执行文件,但问题是,它创建了一个包含javafx应用程序和完整JRE的Windows安装程序 那么,我如何使用javafxmaven插件为Windows构建本机文件,而不携带完整的Java框架呢。也许它应该只创建对Java框架的依赖性。这会使安装程序的磁盘空间从1.5MB膨胀到200MB 对于Maven,我使用命令mvn clean com
javafxmaven插件
可以与Windows安装程序一起工作并创建应用程序的可执行文件,但问题是,它创建了一个包含javafx应用程序和完整JRE的Windows安装程序
那么,我如何使用javafxmaven插件
为Windows构建本机文件,而不携带完整的Java框架呢。也许它应该只创建对Java框架的依赖性。这会使安装程序的磁盘空间从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>
4.0.0
com.demo
hello javafx maven示例
JavaFX示例Maven项目
Jaa演示
罐子
1.0-快照
com.zenjava
javafxmaven插件
8.1.3
com.demo.helloWorld
我是javafx maven插件的维护者
在创建安装程序时,JRE是“按设计”捆绑在应用程序中的。我自己也偶然发现了这一点,但尽管有oracle的最新文档,我发现如果没有本地启动器之外的JRE,我不可能运行生成的文件(使用JDK 1.8u40及以上版本,Windows)。packager.dll似乎要求它在那里。但要说清楚:这可能只是我的一个问题,我没有证实,也没有对此进行调查
回答您的问题:您可以通过传递一些bundleArguments来删除JRE:
<bundleArguments>
<runtime />
</bundleArguments>
我自己也这么做,主要是为了加速测试项目,比如:
<> > >编辑:请考虑升级到插件版本81.5,因为有一些bug被修复,包括Linux系统上的本地发射器的(严重的)严重故障。此外,还支持在正常的maven生命周期中创建捆绑包:如果不将JRE捆绑到应用程序中,别人会如何使用它?您希望他们执行哪些步骤来使用您的应用程序?@jewelsea我更愿意为安装程序设置一种先决条件,以便在安装过程中请求JRE,而不是将整个JRE随身携带。此外,大多数人的机器中通常都安装了Java。因此,先决条件设置是带外的,超出了您的问题范围?@jewelsea好的,那么只删除最终本机构建的JRE。使用。我对JavaFX Maven插件的了解还不够,不知道该工具是否也可以使用。只是一个关于应用程序的提示——“属性”:oracle在一个名为
packager.JAR
的特殊JAR中加入了一些魔力,更多信息可以在这里找到: