需要帮助来解决异常java.lang.NoSuchMethodError:org.neo4j.graphdb.factory.GraphDatabaseSetting $ BooleanSetting

时间:2013-10-01 11:23:27

标签: java neo4j

任何人都可以建议我使用哪个罐来解决以下异常,

Exception in thread "main" java.lang.NoSuchMethodError: org.neo4j.graphdb.factory.GraphDatabaseSetting$BooleanSetting.<init>(Ljava/lang/String;)V
    at org.neo4j.shell.ShellSettings.<clinit>(ShellSettings.java:37)
    at sun.misc.Unsafe.ensureClassInitialized(Native Method)
    at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown Source)
    at sun.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
    at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
    at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
    at java.lang.reflect.Field.get(Unknown Source)
    at org.neo4j.kernel.configuration.AnnotatedFieldHarvester.findStatic(AnnotatedFieldHarvester.java:47)
    at org.neo4j.kernel.configuration.AnnotationBasedConfigurationMigrator.<init>(AnnotationBasedConfigurationMigrator.java:40)
    at org.neo4j.kernel.configuration.Config.<init>(Config.java:89)
    at org.neo4j.kernel.InternalAbstractGraphDatabase.<init>(InternalAbstractGraphDatabase.java:218)
    at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:103)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:88)
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:207)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:69)
    at com.Neo4J.src.EmbeddedNeo4j.createDb(EmbeddedNeo4j.java:48)
    at com.Neo4J.src.EmbeddedNeo4j.main(EmbeddedNeo4j.java:38). 

我已经包含了以下jar,

的Neo4j-内核1.9.3.jar。 感谢。

1 个答案:

答案 0 :(得分:2)

确保您拥有匹配的neo4j-shell jar文件。

命令javap -v -classpath neo4j-shell-1.9.3.jar org.neo4j.shell.ShellSettings | grep invoke向我表明ShellSettings只调用了五种方法。一个是Object默认构造函数,但是在ShellSettings的构造函数中,而不是静态类初始化<clinit>。其他人都来自班级org.neo4j.helpers.Settingssetting在两个不同的重载版本中被调用四次,每次matchesillegalValueMessage

因此,在neo4j的1.9.3版本中,不会发生对堆栈跟踪中提到的GraphDatabaseSetting$BooleanSetting构造函数的调用。因此,您的ShellSettings类必须来自与1.9.3不二进制兼容的其他版本。使用兼容的版本,你应该没问题。