在ant build.xml中包含jar库之后,我仍然得到错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/mongodb/MongoClient
我的ant相关配置如下:
<target name="compile" depends="clean">
<mkdir dir="${classes}"/>
<javac srcdir="${src}" destdir="${classes}" includeantruntime="false" debug="on">
<classpath id="classpath">
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="mongo-2.10.1.jar"/>
</fileset>
</classpath>
</javac>
</target>
"include"部分的东西是工作的,因为没有包含部分,甚至我改变了路径名一点点,我将得到符号未发现错误,这意味着当前类路径被真正包含到文件中。但为什么它仍然不起作用,有人知道吗?
顺便说一下,这是我的java代码的第一行得到错误:MongoClient mongoClient = new MongoClient("localhost",27017);
即使不涉及插入和查询操作.....
您在这里只共享了您的"compile"目标-如果您只将mongo jar文件添加到编译目标中,那么当您实际运行时,您将错过依赖项。
检查mongo jar是否也在运行时类路径上——这可能在"java"ant目标中配置,具体取决于您的应用程序。
您可能需要直接检查您的mongo-java-driver-XXX.jar文件。旧版本没有com.mongodb.MongoClient类。你可以用Mongo代替。
代替
MongoClient client = new MongoClient();
类型:Mongo client = new Mongo();