gpt4 book ai didi

java - 在jar中包含jar文件

转载 作者:行者123 更新时间:2023-11-30 04:41:47 26 4
gpt4 key购买 nike

我有一个 Java 保护,其 c3p0 jar 。在 eclipse 中编译我的项目是有效的。没有错误什么的。但是当我尝试运行我的应用程序时,它显示以下内容:

java.lang.NoClassDefFoundError:com/mchange/v2/c3p0/DataSources

我需要为该 jar 文件提供 c3p0 中的其他 jar 文件吗?或者我可以在启动应用程序时链接它们吗?

最佳答案

注意:我知道您的问题是在 Eclipse 外部运行时出现的。

负责加载类的标准 Java 类加载器不理解 jar 文件内的 jar 文件,因此您需要执行其他操作:

  • 您可以将您使用的所有 jar 文件中的所有类合并到一个 jar 文件中。 (此时向您推荐,而非一般推荐)
  • 您可以将 jar 文件放入单个 jar 文件中,并使用能够理解这一点的特殊类加载器。
  • 您可以将引用的 jar 放在包含类文件的单个 jar 文件的“旁边”,并使可运行的 jar 包含引用它们所需的必要 MANIFEST.MF voodo。

Eclipse 中的File->Export->Runnable jar 选项可以根据您的选择执行所有这三个操作。选择最适合您向最终用户提供类(class)的方式。

我个人喜欢“生成的 jar 旁边的 jar”,因为它最接近 Java 开箱即用的支持,同时保留原始 jar 文件。最简单的是最有可能合并所有类,但是当您更高级时您会发现它有一些缺点 - 此时您很可能不会遇到它们。

关于java - 在jar中包含jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com