0

将 jar lib 包含在 ant build.xml 中后,仍然出现错误:

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>

“包含”部分的东西正在工作,因为没有包含部分,甚至我稍微更改了路径名,我都会得到符号未找到错误,这意味着当前类路径确实包含在文件中。但是为什么它仍然不起作用,有人知道吗?

顺便说一句,这是我的java代码的第一行得到错误:

MongoClient mongoClient = new MongoClient("localhost",27017);

甚至没有进行插入和查询操作.....

4

2 回答 2

1

您仅在此处共享了“编译”目标 - 如果您仅将 mongo jar 文件添加到编译目标,那么当您实际运行时,您将丢失依赖项。

检查 mongo jar 是否也在运行时类路径中 - 这可能在“java”ant 目标中配置,具体取决于您的应用程序。

于 2013-03-14T12:18:48.023 回答
-1

您可能想直接检查您的 mongo-java-driver-XXX.jar 文件。旧版本没有 com.mongodb.MongoClient 类。你可以用 Mongo 代替。

代替

MongoClient client = new MongoClient();

输入这个:

Mongo client = new Mongo();
于 2013-11-30T14:34:34.817 回答