在Java中执行Neo4j Cypher查询时出现NoClassDefFoundError [英] NoClassDefFoundError when executing a Neo4j Cypher query in Java

查看:444
本文介绍了在Java中执行Neo4j Cypher查询时出现NoClassDefFoundError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了以下基于嵌入式Java执行Cypher查询的基本示例模式按原样,但它显示以下错误:

I tried the following basic example about executing Cypher queries from Java in embedded mode as is, but it shows the errors below:

代码:

package test;

import org.neo4j.cypher.javacompat.ExecutionEngine;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class Test {

    public static void main(String[] args) {
        GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase("D:/MI/Tools/neo4j-community-1.9.M02/test2");
        // add some data first, keep id of node so we can refer to it
        long id;
        Transaction tx = db.beginTx();
        try {
            Node refNode = db.createNode();
            id = refNode.getId();
            refNode.setProperty("name", "reference node");
            tx.success();
        } finally {
            tx.finish();
        }

        // let's execute a query now
        ExecutionEngine engine = new ExecutionEngine(db);
        ExecutionResult result = engine.execute("start n=node(" + id + ") return n, n.name");
        System.out.println(result.toString());
    }
}

输出:

Exception in thread "main" java.lang.NoClassDefFoundError: com/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap$Builder
    at org.neo4j.cypher.internal.LRUCache.<init>(LRUCache.scala:30)
    at org.neo4j.cypher.ExecutionEngine$$anon$1.<init>(ExecutionEngine.scala:91)
    at org.neo4j.cypher.ExecutionEngine.<init>(ExecutionEngine.scala:91)
    at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:54)
    at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:44)
    at test.Test.main(Test.java:27)
Caused by: java.lang.ClassNotFoundException: com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$Builder
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 6 more
Java Result: 1
BUILD SUCCESSFUL (total time: 5 seconds)

代码中是否有任何问题?

Is there any problem in the code?

(我使用neo4j-community-1.9.M02和NetBeans IDE 7.2.1)

(I use neo4j-community-1.9.M02 and NetBeans IDE 7.2.1)

谢谢。

推荐答案

将以下Java库添加到项目后问题消失了

The problem disappeared after adding the following Java library to the project

http://concurrentlinkedhashmap.googlecode.com/files/concurrentlinkedhashmap-lru- 1.3.1.jar

这篇关于在Java中执行Neo4j Cypher查询时出现NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆