首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jar中包含jar文件

在jar中包含jar文件
EN

Stack Overflow用户
提问于 2012-08-27 05:18:18
回答 3查看 220关注 0票数 1

我有一个带有c3p0 JAR的Java保护。在eclipse中编译我的项目是可行的。没有错误或其他东西。但当我尝试运行我的应用程序时,它显示以下内容:

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

我是否需要将来自c3p0的另一个jarfile提供给jar文件?或者我可以在启动应用程序时将它们链接起来?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-27 05:51:31

注意:我已经理解了您在Eclipse外部运行时的问题。

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

  • 您可以将您使用的所有jar文件中的所有类合并到单个jar文件中。(在这一点上建议您,不是一般的recomendation)
  • You可以将jar文件放在单个jar文件中,并使用理解这一点的特殊类加载器。
  • 您可以将引用的jar放在包含您的类文件的单个jar文件的“旁边”,并让可运行的jar包含引用它们所需的必要MANIFEST.MF voodo。

Eclipse中的File->Export->Runnable jar选项可以根据您的选择执行所有这三项操作。选择最适合您如何将类提供给最终用户的类。

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

票数 2
EN

Stack Overflow用户

发布于 2012-08-27 05:30:36

在eclipse中添加C3P0作为外部jar

票数 0
EN

Stack Overflow用户

发布于 2012-08-27 05:37:06

看起来您在运行示例时没有在类路径中添加c3p0。

但是,您可以为eclipse使用maven和m2e插件,并添加以下内容

代码语言:javascript
复制
 <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
 </dependency>

除了您拥有的其他依赖项之外。

在mvn eclipse: eclipse之后,您的项目将具有正确的类路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12133990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档