使用Javafxpackager添加多个依赖Jars

时间:2013-11-08 18:43:44

标签: java jar javafx

我在命令行中添加多个软件包时遇到问题。

javafxpackager -createjar -outfile outjar -srcdir /dest/to/src -classPath 
libs/library1.jar:libs/library2.jar -appClass pathto.MainClass -v

我尝试过使用空格和多个-classPath标志,显然我也尝试了冒号。我在Ubuntu工作,该程序在Eclipse中运行良好,但是当我打包它时,它会起作用,直到我尝试做一些需要外部库的东西。如果我只使用一个我可以做的功能很好,但需要倍数才能完全工作。

如果有人能够对此有所启发,我将非常感激。

1 个答案:

答案 0 :(得分:0)

而不是:

-classPath libs/library1.jar:libs/library2.jar 

使用:

-classpath "libs/library1.jar;libs/library2.jar"

解析由打包程序在清单中创建的JavaFX-ClassPath无论是什么,都不希望您使用:来分隔库。当您在;参数中使用-classpath时,生成的JavaFX-ClassPath将使用空格来分隔库,然后运行时将能够使用这两个库。

这是我在OS X上使用JavaFX打包程序生成的示例清单(对我有用)。

$ jar xf HelloWorld.jar
$ cat META-INF/MANIFEST.MF 
Manifest-Version: 1.0
JavaFX-Application-Class: HelloWorld
JavaFX-Class-Path: lib/phrases.jar lib/friend.jar
JavaFX-Version: 2.2
Created-By: JavaFX Packager
Main-Class: com/javafx/main/Main

使用OS X 10.8 Java 1.8.0-ea-b113上的命令生成包含清单的Jar:

/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/javafxpackager -createjar -classpath "lib/phrases.jar;lib/friend.jar" -srcdir . -outfile HelloWorld -appclass HelloWorld