我使用c3p0 JAR进行Java保护。在eclipse中编译我的项目。没有错误或什么的。但是当我尝试运行我的应用程序时,它会说:
java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/DataSources
我是否需要从c3p0给jar文件另一个jar文件?或者我可以在langing应用程序时链接它们吗?
答案 0 :(得分:2)
注意:我已经理解了在外部 Eclipse中运行时的问题。
负责加载类的标准Java类加载器无法理解jar文件中的jar文件,因此您需要做其他事情:
Eclipse中的File->Export->Runnable jar
选项可以根据您的选择完成所有这三个选项。选择一个最适合你如何将课程交给最终用户的人。
我个人喜欢“生成的jar旁边的jar”,因为它最接近Java支持的开箱即用,同时保留原始的jar文件。最简单的是最有可能合并所有类,但是当你获得更高级时,你会发现它有一些缺点 - 此时你很可能不会遇到它们。
答案 1 :(得分:0)
在eclipse中添加C3P0作为外部jar
答案 2 :(得分:0)
在运行示例时,您似乎没有在类路径中添加c3p0。
但是你可以使用maven和m2e插件进行eclipse并添加以下内容
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
除了你拥有的其他依赖项。
在mvn eclipse之后:eclipse,你将拥有一个正确类路径的项目。