Java HypergraphDB Netbeans设置

Java HypergraphDB Netbeans设置,java,netbeans,nosql,berkeley-db,Java,Netbeans,Nosql,Berkeley Db,我想用Java中的HypergraphDB做一些事情。我不太熟悉这种语言和IDE Netbeans。 我遵循了描述HGDB安装的步骤: 现在我想用Java编写一个示例(使用NetbeansIDE) 所以我创建了一个新项目,向下载的库中添加了引用。好的,现在我可以用HGDB导入包了。我在main方法中唯一拥有的是HyperGraph HG=newhypergraph(dbLocation)。这段代码可以编译。但获取以下运行时错误: run: checkpoint kbytes:0 chec

我想用Java中的HypergraphDB做一些事情。我不太熟悉这种语言和IDE Netbeans。 我遵循了描述HGDB安装的步骤: 现在我想用Java编写一个示例(使用NetbeansIDE)

所以我创建了一个新项目,向下载的库中添加了引用。好的,现在我可以用HGDB导入包了。我在
main
方法中唯一拥有的是
HyperGraph HG=newhypergraph(dbLocation)。这段代码可以编译。但获取以下运行时错误:

    run:
checkpoint kbytes:0
checkpoint minutes:0
java.lang.IllegalStateException: There is 1 existing transaction opened against the Environment.
Aborting open transactions ...
aborting <Transaction id="28">
    at com.sleepycat.je.Environment.close(Environment.java:383)
    at org.hypergraphdb.storage.bje.BJEStorageImplementation.shutdown(BJEStorageImplementation.java:178)
    at org.hypergraphdb.HGStore.close(HGStore.java:355)
    at org.hypergraphdb.HyperGraph.open(HyperGraph.java:392)
    at org.hypergraphdb.HyperGraph.open(HyperGraph.java:213)
    at org.hypergraphdb.HyperGraph.<init>(HyperGraph.java:200)
    at hgdbtest.HgdbTest.main(HgdbTest.java:16)
Exception in thread "main" org.hypergraphdb.HGException: java.lang.NoSuchMethodError: org.hypergraphdb.storage.bje.LinkBinding.objectToEntry(Ljava/lang/Object;Lcom/sleepycat/je/DatabaseEntry;)V
    at org.hypergraphdb.HyperGraph.open(HyperGraph.java:395)
    at org.hypergraphdb.HyperGraph.open(HyperGraph.java:213)
    at org.hypergraphdb.HyperGraph.<init>(HyperGraph.java:200)
    at hgdbtest.HgdbTest.main(HgdbTest.java:16)
Caused by: java.lang.NoSuchMethodError: org.hypergraphdb.storage.bje.LinkBinding.objectToEntry(Ljava/lang/Object;Lcom/sleepycat/je/DatabaseEntry;)V
    at org.hypergraphdb.storage.bje.BJEStorageImplementation.store(BJEStorageImplementation.java:234)
    at org.hypergraphdb.HGStore.store(HGStore.java:119)
    at org.hypergraphdb.HGTypeSystem.addPrimitiveTypeToStore(HGTypeSystem.java:185)
    at org.hypergraphdb.HGTypeSystem.bootstrap(HGTypeSystem.java:234)
    at org.hypergraphdb.HyperGraph.open(HyperGraph.java:355)
    ... 3 more
Java Result: 1
BUILD SUCCESSFUL (total time: 4 seconds)
运行:
检查点KB:0
检查点分钟数:0
java.lang.IllegalStateException:针对该环境打开了1个现有事务。
正在中止打开的事务。。。
流产
在com.sleepycat.je.Environment.close上(Environment.java:383)
位于org.hypergraphdb.storage.bje.bjestrageimplementation.shutdown(bjestrageimplementation.java:178)
位于org.hypergraphdb.HGStore.close(HGStore.java:355)
位于org.hypergraphdb.HyperGraph.open(HyperGraph.java:392)
在org.hypergraphdb.HyperGraph.open上(HyperGraph.java:213)
位于org.hypergraphdb.HyperGraph.(HyperGraph.java:200)
位于hgdbtest.hgdbtest.main(hgdbtest.java:16)
线程“main”org.hypergraphdb.HGException:java.lang.NoSuchMethodError:org.hypergraphdb.storage.bje.LinkBinding.objectToEntry(Ljava/lang/Object;Lcom/sleepycat/je/DatabaseEntry;)V
位于org.hypergraphdb.HyperGraph.open(HyperGraph.java:395)
在org.hypergraphdb.HyperGraph.open上(HyperGraph.java:213)
位于org.hypergraphdb.HyperGraph.(HyperGraph.java:200)
位于hgdbtest.hgdbtest.main(hgdbtest.java:16)
原因:java.lang.NoSuchMethodError:org.hypergraphdb.storage.bje.LinkBinding.objectToEntry(Ljava/lang/Object;Lcom/sleepycat/je/DatabaseEntry;)V
位于org.hypergraphdb.storage.bje.bjestrageimplementation.store(bjestrageimplementation.java:234)
位于org.hypergraphdb.HGStore.store(HGStore.java:119)
位于org.hypergraphdb.HGTypeSystem.addPrimitiveTypeToStore(HGTypeSystem.java:185)
位于org.hypergraphdb.HGTypeSystem.bootstrap(HGTypeSystem.java:234)
位于org.hypergraphdb.HyperGraph.open(HyperGraph.java:355)
... 3个以上
Java结果:1
生成成功(总时间:4秒)
我猜这是由BerkeleyDB的本地API造成的

根据本教程,在项目选项中,我将Run card上的
-Djava.library.path=$HGDB_ROOT/lib/native/$PLATFORM
参数作为VM选项提供。我使用库的完整路径,而不是系统变量。 我的操作系统在Windows7中。我不确定是否使用斜线、反斜线或双反斜线作为路径分隔符

所以一个简单的问题是:如何设置使用HypergraphDB的IDE


谢谢你的建议

从堆栈跟踪判断,您使用的是最新版本的HyperGraphDB。在该版本中,不使用本机API。相反,它是只支持Java的库。您必须在运行时类路径中包含BerkeleyDB Java Edition 5.0.34 jar。您可以从Oracle或HyperGraphDB Maven存储库获得它:

我也有同样的问题。我(无意中)修复了HyperGraphDB应用程序所依赖的库的顺序。库je-[version].jar必须在上面(因此之前必须被引用)db-[version].jar

高度怀疑这可能是一个问题,如果包含的库的顺序对编译错误有任何影响,我无法想象有40-80个库的项目会变得多么混乱!您是否添加了所有三个必需的库:hgbdbje-1.3.jar、hgdb-1.3.jar、je-5.0.34.jar??