我在命令行中添加多个软件包时遇到问题。
javafxpackager -createjar -outfile outjar -srcdir /dest/to/src -classPath
libs/library1.jar:libs/library2.jar -appClass pathto.MainClass -v
我尝试过使用空格和多个-classPath
标志,显然我也尝试了冒号。我在Ubuntu工作,该程序在Eclipse中运行良好,但是当我打包它时,它会起作用,直到我尝试做一些需要外部库的东西。如果我只使用一个我可以做的功能很好,但需要倍数才能完全工作。
如果有人能够对此有所启发,我将非常感激。
答案 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