【问题标题】:Including a jar within a jar in Eclipse? (Without making the JAR runnable)在 Eclipse 中的 jar 中包含一个 jar? (不使 JAR 可运行)
【发布时间】:2012-08-23 15:11:22
【问题描述】:

您好,我发现自己引用了我不久前在我的代码中创建的 JAR 存档。但是我制作的 JAR 引用了 JSoup JAR 文件,我刚刚发现它并没有像我假设的那样自动添加(愚蠢的假设)。因此,在查看 Stack-Overflow 之后,似乎只需将一些 Class-Path 信息添加到自定义清单中,我就可以解决我的问题......但是当我尝试从另一个项目中引用我的 JAR 时,我仍然遇到 ClassDef 错误。

Manifest-Version: 1.0
Class-Path: "C:\Users\ethan\Documents\ACTUAL My Documents\Libraries\Java Libraries\jsoup\jsoup-                1.6.3.jar"

所以我不确定我是否写错了清单。 (我试过带引号和不带引号,都没有用)。我没有任何编写清单的经验,我的知识来自 stackoverflow 上的这篇文章

Eclipse: How to build an executable jar with external jar?

来自 McDowell 的帖子。

我看到很多帖子建议使用 Maven 或第三方应用程序。但似乎应该有一些更简单的方法可以在 Eclipse 中实现这一点,而无需安装任何新东西(因为这通常会带来新的麻烦)。

【问题讨论】:

    标签: java eclipse jar classpath manifest


    【解决方案1】:

    Manifest 中的 Class-Path 仅在您运行可执行 jar 时使用。它不会用于用作库的 jar 文件。你也必须告诉你的主 JAR 文件。

    【讨论】:

    • 我的主 JAR 文件是什么意思?
    • 或您的 Eclipse 项目类路径,或使用该库 jar 文件的任何内容。该库的任何依赖项都不会自动从该清单条目中获取。
    • 哦,这对我的目的有用。但我希望能够分发我编写的这个库供其他人使用。而且我并不完全想包括他们必须在使用 Jsoup 时包含它的说明......
    • 然后重新打包所有依赖。与制作可运行的 jar 文件的过程相同。 Eclipse 可以做到这一点。但是,我不得不问为什么:如果你分发一个 library,那么你就是在分发给 developers。他们会知道如何包含它们(您甚至可以将它们捆绑在您的 zip 下载中,就像那里的每个开源项目一样,它们有一个“lib”文件夹)。如果您分发给最终用户,请制作一个包含所有依赖项的可运行 jar。
    • 抱歉,我以前从未深入研究过这类事情。如何重新打包 Eclipse 中的所有依赖项?我的一位教授正在考虑在他的一门课程中使用图书馆,这是一门入门级课程。此外,这似乎更麻烦......我喜欢尝试让事情尽可能简单。 =D
    猜你喜欢
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2013-08-16
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多