tdbloader2 因类路径错误而失败

tdbloader2 fails with classpath error

当我运行以下命令时:

bin/tdbloader2 --loc=/store/data/here /seed/data/serverfault-dump.nt

我得到的回复是:

10:52:31 -- TDB Bulk Loader Start
10:52:31 Data phase
Error: Could not find or load main class com.hp.hpl.jena.tdb.store.bulkloader2.CmdNodeTableBuilder

这很可能是我的某个地方的环境变量有问题导致的。问题是,我不经常使用 Java,所以我不知道如何找出 class 找不到的东西。

如何让 tdbloader2 找到合适的class?

您至少需要将 TDBROOT 环境变量设置为包含您的 TDB 下载的目录。这将是 bin 上方的目录,因为一些脚本使用 ${TDBROOT}/bin/foo 启动其他脚本

该脚本会尝试通过调用 tdb_path 脚本来自动构建有效的 class 路径,该脚本会根据您的环境调用 make_classpath_mvnmake_classpath。如果您直接 运行 tdb_path 脚本,您可以查看它是否生成了看起来正常的 class 路径(或者如果输出没有提供任何内容,则将它生成的内容添加到您的问题中有帮助)。

我忘记设置 JENAROOT 路径变量。

https://jena.apache.org/documentation/tools/

An environment variable JENAROOT is used by all the command line tools to configure the class path automatically for you. You can set this up as follows:

On Linux / Mac

export JENAROOT=the directory you downloaded Jena to export PATH=$PATH:$JENAROOT/bin On Windows

SET JENAROOT=the directory you downloaded Jena to SET PATH=%PATH%;%JENAROOT%\bat