Java Neo4j执行引擎

Java Neo4j执行引擎,java,neo4j,cypher,scala-2.10,Java,Neo4j,Cypher,Scala 2.10,我正在为Neo4j学习Cypher,并尝试了文档中非常简单的示例 由于ExecutionEngine,我有一个java.lang.CompatibleClassChange错误。 我的全部代码是 GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase(DatabaseConstants.MyDB); try( Transaction tx = db.beginTx() ) {

我正在为Neo4j学习Cypher,并尝试了文档中非常简单的示例

由于ExecutionEngine,我有一个java.lang.CompatibleClassChange错误。 我的全部代码是

GraphDatabaseService db = new     GraphDatabaseFactory().newEmbeddedDatabase(DatabaseConstants.MyDB);
    try( Transaction tx = db.beginTx() ) {
        Node myNode = db.createNode();
        myNode.setProperty("name", "My node");
        tx.success();
    }
    System.out.println(scala.util.Properties.versionString());
    ExecutionEngine engine = new ExecutionEngine(db);
    db.shutdown();
完整的输出是

version 2.9.0.1
Exception in thread "main" java.lang.IncompatibleClassChangeError: class scala.reflect.ManifestFactory$$anon$6 has interface scala.reflect.AnyValManifest as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
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:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at scala.reflect.ManifestFactory$.<init>(Manifest.scala:88)
at scala.reflect.ManifestFactory$.<clinit>(Manifest.scala)
at org.neo4j.cypher.ExecutionEngine.createCorrectCompiler(ExecutionEngine.scala:126)
at org.neo4j.cypher.ExecutionEngine.<init>(ExecutionEngine.scala:37)
at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:53)
at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:43)
at neo4j.tutorials.NeoCypherQuery.run(NeoCypherQuery.java:24)
at neo4j.tutorials.NeoCypherQuery.main(NeoCypherQuery.java:13)
2.9.0.1版
线程“main”java.lang.CompatibileClassChangeError中出现异常:类scala.reflect.ManifestFactory$$anon$6将接口scala.reflect.AnyValManifest作为超类
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:800)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
在java.net.URLClassLoader.access$100(URLClassLoader.java:71)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
位于scala.reflect.ManifestFactory$(Manifest.scala:88)
位于scala.reflect.ManifestFactory$(Manifest.scala)
在org.neo4j.cypher.ExecutionEngine.createCorrectCompiler上(ExecutionEngine.scala:126)
位于org.neo4j.cypher.ExecutionEngine(ExecutionEngine.scala:37)
位于org.neo4j.cypher.javacompat.ExecutionEngine(ExecutionEngine.java:53)
位于org.neo4j.cypher.javacompat.ExecutionEngine(ExecutionEngine.java:43)
位于neo4j.tutorials.NeoCypherQuery.run(NeoCypherQuery.java:24)
位于neo4j.tutorials.NeoCypherQuery.main(NeoCypherQuery.java:13)
特别是,我不明白为什么scala版本是2.9.0.1,而我在项目类路径中有scala-library-2.10.3.jar,包含在下载的文件中

我在跑步

  • Mac Os X Maverick 10.9
  • Neo4j 2.0.1企业版
  • Java 1.7.0_45热点服务器
  • 我的系统中还安装了Scala 2.10.4
有人有什么建议吗?
非常感谢

如何设置类路径以运行程序

如果使用maven,请尝试
mvn dependency:tree
,并在路径中检查scala版本


否则,请查看您的lib目录。

谢谢您的回复。我正在使用EclipseKepler,我在我的项目库目录中复制了下载的$NEO_HOME/lib目录中的所有JAR,并在项目上用“配置构建路径/添加JAR…”配置了类路径。scala库位于类路径中!