我想通过导出在 Eclipse中创建一个可运行的 JAR,其中包含引用的库,即jackson 。在 Eclipse 提供导出到可运行 JAR 之前,曾经有一个胖 jar似乎是 goto 解决方案。
从这个问题,第一个选择就是我要找的。由于目前是一个小项目,因此始终将所有内容放在一起不会成为问题(另外,这对我来说更容易,因为我刚开始使用 JAR、runnables 和 jnlp)
当我尝试启动它时,会出现一个警告窗口,提示存在问题并尝试在控制台中找到它(我无法打开)。
如果我删除对这个引用库的任何使用,一切都会完美运行(除了它根本没有做我想要的部分)。窗口看起来像我设计的那样,但是没有库就没有功能。
我什至没有堆栈跟踪来帮助解决问题。我创建了没有任何引用库的其他项目,一切都很好。所以我已经把它缩小了很多。
由于我让 Eclipse 处理导出和所有事情,我认为您不需要清单来查看它是否正常。您可能有任何问题,我会提供您需要的信息。不用说,该项目直接从 Eclipse 运行。
Eclipse 版本:Indigo Service Release 2 构建 ID:20120216-1857
按照Baqueta的回答进行编辑
当我这样做时会发生什么是我得到一个自定义的 RuntimeException。我在这里有点困惑。这是我的代码的简单解释。我有一个使用引用库(jackson)的实用程序类(UtilityJSON)。该实用程序类的构造函数实例化了在引用库中定义的对象,我们称之为映射器。UtilityJSON 的一种方法使用“mapper”方法。此时引发异常。为什么我感到困惑的是“映射器”已成功实例化,但使用它的方法会引发异常。如果 jar 找不到引用的库,它可能无法创建对象“映射器”。但是从 Eclipse 运行项目一切正常。运行可执行jar时有什么方法可以调试吗?也许在控制台中回显一些东西。
编辑 2
我可能发现了错误。我的程序读取项目内文件夹中的 *.txt 文件。在探索 jar 的内容时,我发现此文件夹未包含在内,因此出现异常。所以现在的问题变成了:我如何包含这个文件夹?它位于项目的根文件夹中。