【发布时间】:2012-05-01 04:08:02
【问题描述】:
我想通过导出在 Eclipse 中创建一个包含引用库的可运行 JAR,即 jackson。在 Eclipse 提供导出到可运行 JAR 之前,曾经有 fat jar 似乎是 goto 解决方案。
从这个question,第一个选项将是我正在寻找的。由于目前是一个小项目,因此始终将所有内容放在一起不会有问题(而且对我来说更容易,因为我刚开始使用 JAR、runnables 和 jnlp)
当我尝试启动它时,会出现一个警告窗口,提示存在问题并尝试在控制台中找到它(我无法打开)。
如果我删除对这个引用库的任何使用,一切都会完美运行(除了它根本没有做我想要的部分)。窗口看起来像我设计的那样,但没有库就没有任何功能。
我什至没有堆栈跟踪来帮助解决这个问题。我创建了没有任何引用库的其他项目,一切都很好。所以我已经缩小了范围。
由于我让 Eclipse 处理导出和所有事情,我认为您不需要清单来查看它是否正常。您可能有任何问题,我会提供您需要的信息。不用说,项目直接从 Eclipse 运行。
日食 版本:Indigo Service Release 2 内部版本号:20120216-1857
编辑Baqueta的回答
当我这样做时会发生自定义 RuntimeException。我在这里有点困惑。这是我的代码的简单解释。 我有一个使用引用库(jackson)的实用程序类(UtilityJSON)。该实用程序类的构造函数实例化在引用库中定义的对象,我们称之为映射器。 UtilityJSON 的一种方法使用“mapper”方法。此时引发异常。为什么我感到困惑的是“映射器”已成功实例化,但使用它的方法会引发异常。如果 jar 找不到引用的库,它可能无法创建对象“映射器”。但是从 Eclipse 运行项目一切正常。 运行可执行jar时有什么方法可以调试吗?也许在控制台中回显一些东西。
编辑 2
我可能发现了错误。我的程序读取项目内文件夹中的 *.txt 文件。在探索 jar 的内容时,我发现此文件夹未包含在内,因此出现异常。所以现在的问题变成了:我如何包含这个文件夹?它位于项目的根文件夹中。
【问题讨论】:
-
当您尝试运行 Jar 时收到什么错误消息?转到命令提示符并键入
java -jar <your jar name>.jar,它应该会告诉您出了什么问题... -
您好,抱歉,我错过了您的回答。请查看我的编辑。
-
据我所知,您正试图从资源管理器中启动它,听起来它甚至在启动控制台之前就已经死了。通过从命令行启动它,您可能会获得更多信息。在 cmd(或等效项)中到包含 jar 的文件夹并键入
java -jar <yourjarname>.jar。它有望为您提供一些有用的信息,说明它无法启动的原因...... -
没有资源管理器,只有终端(在 Mac 上)。 Ran java -jar Test.jar 我在终端中遇到异常。请参阅我的第二次编辑。看来问题可能不是我想的那样。
标签: java eclipse jar executable executable-jar