我已经制作了一个javafx应用程序表单,我得到一个可执行jar作为输出。 现在我的javafx应用程序依赖于两个第三方jar,如commons.io.2.4.jar。
目前要运行我的应用程序,我必须将这些依赖的jar保存在我的可执行jar的类路径中
--------Application.jar
----------[Classpath Folder]\dependend.jar files
但我希望所有依赖的jar都捆绑在我的可执行jar中。
由于javafx使用了ant build我尝试使用
<jar destfile="application.jar">
<zipfileset src="Dependent.jar" />
</jar>
但是在捆绑所有依赖的jar之后我没有得到可执行jar。我不知道问题出在哪里。
我也尝试过<fx:jar> </fx:jar>
个标签,但无法弄清楚如何完全达到我的要求。
这就是清单文件的外观:
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=
答案 0 :(得分:1)
需要注意的是,如果任何依赖的JAR本身都包含清单。
<jar destfile="application.jar">
<zipfileset src="Dependent.jar" excludes="META-INF/MANIFEST.MF/>
</jar>
答案 1 :(得分:0)
在我使用exe4j之前,我遇到了同样的问题,我已经添加了所有需要的jar和exe4j将它们全部合并在一起。这适合我。确保在添加jar时添加主Jar的Main类路径。
答案 2 :(得分:0)
尝试一下:
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