如何获得可执行javafx jar与依赖的jar捆绑



我制作了一个javafx应用程序表单,我得到一个可执行的jar作为输出。现在我的javafx应用程序依赖于两个第三方jar,如commons.io.2.4.jar.

目前要运行我的应用程序,我必须将这些依赖的jar保存在我的可执行jar的类路径中,像这样

--------Application.jar
----------[Classpath Folder]dependend.jar files

但是我希望所有依赖的jar文件都被捆绑在我的可执行jar文件中。

由于javafx使用ant构建,我尝试使用

 <jar destfile="application.jar">
        <zipfileset src="Dependent.jar" />
 </jar>

但是在捆绑了所有依赖的jar之后,我没有得到可执行的jar。我不知道问题出在哪里。

我也尝试了相同的<fx:jar> </fx:jar>标签,但无法弄清楚如何准确地达到我的要求。

这就是manifest文件的样子:

Manifest-Version: 1.0
implementation-vendor: dhruv1767
JavaFX-Version: 2.2
implementation-title: LogsDeObfuscator
implementation-version: 1.0
JavaFX-Application-Class: com.liaison.controller.LogsDeObfuscator
JavaFX-Class-Path: lib/allatori.jar lib/commons-io-2.4.jar
Created-By: JavaFX Packager
Main-Class: com/javafx/main/Main
Name: com/javafx/main/Main.class
SHA-256-Digest: j0IuLabX3l0TgeO1+UqESD6fWA09lNsuiTtr4eue1HU=
Name: com/liaison/controller/LogsDeObfuscator.class
SHA-256-Digest: AysvgvCJeJoRdCpqu1xC8JDKttGWUQR4ce8jVW/kLDY=
Name: com/liaison/controller/Delta.class
SHA-256-Digest: TkQcfU1YWr6UwkiIj2IJpFi4UirQK7pDL26pVnAjVYM=

需要注意的一件事是,是否有任何依赖的jar本身包含清单。

<jar destfile="application.jar">
    <zipfileset src="Dependent.jar" excludes="META-INF/MANIFEST.MF/>
</jar>

在使用exe4j之前,我遇到了同样的问题,我已经添加了所需的所有jar,并且exe4j将它们捆绑在一起。这对我很有效。请确保在添加jar时添加了Main jar的Main类路径。

试一试:

http://www.zenjava.com/2012/11/24/from-zero-to-javafx-in-5-minutes/

Maven是必需的,但它会使添加Commons IO依赖变得轻而易举。

按照指示,我能够为Ubuntu制作一个可执行的JAR和本机安装程序。可执行的JAR生成是用这个命令完成的:

mvn jfx:build-jar

从链接中获取示例项目。然后将依赖项添加到POM文件中。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

然后您可以将现有的代码移动到Maven管理的JavaFX项目中。

更多细节在链接上,但是要生成本机安装程序,请运行以下命令:

mvn jfx:build-native

相关内容

  • 没有找到相关文章

最新更新