2012-12-28 73 views
1

執行的Neo4j的Cypher查詢時,我嘗試了以下基本例如約executing Cypher queries from Java in embedded mode原樣,但它顯示了以下錯誤:的NoClassDefFoundError Java中

代碼:

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) 

代碼中有沒有問題?

(我用的Neo4j-社區1.9.M02和NetBeans IDE 7.2.1)

感謝。

+0

看起來像Neo4j的暗號裏面的東西的依賴問題後消失。在執行時確保所有依賴JAR都在正確的位置。 此外,這個問題是相同的:http://stackoverflow.com/questions/13175176/exception-in-executing-cypher-queries-of-neo4j-in-java-application?rq=1 –

+0

謝謝你,我沒有發現類似的問題,但答案沒有幫助。我在另一個問題(現在不記得是哪一個!)中添加了最新版本的concurrentlinkedhashmap庫可能會有所幫助,而且它確實有所幫助。 – Orion

回答