【问题标题】:Adding multiple dependent Jars using Javafxpackager使用 Javafxpackager 添加多个依赖的 jar
【发布时间】:2013-11-08 18:43:44
【问题描述】:

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

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

我尝试过使用空格和多个-classPath 标志,显然我也尝试过冒号。我在 Ubuntu 中工作,该程序在 Eclipse 中运行良好,但是当我打包它时,它一直有效,直到我尝试做一些需要外部库的事情。如果我只使用一个,我可以很好地完成该功能,但需要多个才能充分发挥作用。

如果有人能对此有所了解,我将不胜感激。

【问题讨论】:

  • 你试过用Eclipse中的导出功能创建jar吗?
  • 另外,“在我尝试做一些需要外部库的事情之前它可以工作”是什么意思?您的意思是javafxpackager 在您指定第三方库时不会创建 jar,还是说它不会运行?你得到什么错误的输出信息?
  • 我可以创建 jar 并使用“java -jar outjar.jar”运行它,并且 GUI 出现并且看起来很好。然后,当我尝试做某事时,引用任何外部 jar 都会崩溃。从 eclipse 导出 jar 会产生一个非常奇怪的 GTK 线程和一些关于缺少链接的东西。
  • 不要直接使用javafxpackager,而是使用易于使用的zen-java maven插件,内部使用javafxpackager

标签: java jar javafx


【解决方案1】:

代替:

-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

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

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

【讨论】:

  • 这正是我所需要的。我看到分号的地方,但从来没有想过用引号括起来。非常感谢!
猜你喜欢
  • 2016-02-22
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 2019-09-03
  • 1970-01-01
相关资源
最近更新 更多