【问题标题】:Java create standalone jar with external jarsJava 使用外部 jar 创建独立 jar
【发布时间】:2011-07-10 06:58:54
【问题描述】:

我为我的应用程序开发了两个 .jar(LOG.jar 和 STRING.jar)。

我使用这些 jar,在 .java 中导入:

import LOG.CLog
import STRING.CString

没关系。但是 .jar 在我的项目中越来越多,所以我只想创建一个 .jar 包含所有开发的 .jar。

所以我通过创建唯一的一个 .jar(名为 TOOLS.jar)来尝试这个:

jar.exe cvmf MANIFEST.MF TOOLS.jar TOOLS\LOG.jar TOOLS\STRING.jar

但是,如果我只将 TOOLS.jar 文件放在我的应用程序编译中(Eclipse 中的 Java 构建路径),我想导入时会出错:

import TOOLS.LOG.CLog

无法解析此导入。

在 Eclipse“引用库”中,我看到包 PXTOOLS 包含 STRING.jar 和 LOG.jar,但我没有看到 STRING 和 LOG 包!

我该如何解决?

【问题讨论】:

    标签: java jar external


    【解决方案1】:

    我使用这些 jar,在 .java 中导入 :

    导入 LOG.CLog 导入 STRING.CString

    您通过使用包名限定类来导入类;不是直接来自 JAR 文件。我希望你的包在这里被称为LOG,类是CLog(尽管使用大写的包名是一个不好的命名约定)

    其次,不建议将 JAR 文件合并为一个。最好将它们分开。如果您确实想要合并,则必须确保先提取所有类文件,然后再合并。

    【讨论】:

    • 谢谢,这回答了我关于 jar 组织的问题。所以,我会让我的应用程序调用我开发的每个 .jar !谢谢。
    【解决方案2】:

    您不能在 jar 文件中包含 jar。如果您只想交付一个罐子,请查看One-Jar 之类的工具。他们可以为您打包一个工作 jar。

    【讨论】:

      【解决方案3】:

      我使用这些 jar,在 .java 中导入:

      导入 LOG.CLog 导入 STRING.CString

      您通过使用包名限定类来导入类;不是直接来自 JAR 文件。我希望你的包在这里被称为 LOG 并且类是 CLog (虽然使用大写的包名是一个不好的命名约定)

      其次,不建议将 JAR 文件合并为一个。最好将它们分开。如果您确实想要合并,则必须确保先提取所有类文件,然后再合并。

      是的,您可以这样做。看看这里 - Build Java entire project jar using JDeveloper

      【讨论】:

        猜你喜欢
        • 2014-01-23
        • 2012-04-15
        • 2015-09-01
        • 2011-12-31
        • 2012-08-27
        • 1970-01-01
        • 2020-04-17
        • 1970-01-01
        • 2013-09-28
        相关资源
        最近更新 更多