【问题标题】:tdbloader on Cygwin: java.lang.NoClassDefFoundErrorCygwin 上的 tdbloader:java.lang.NoClassDefFoundError
【发布时间】:2011-05-22 16:36:33
【问题描述】:

我正在尝试在 Cygwin 上使用 tbdloader(安装了最新 Java 的 Windows 7)。这是 tbdloader 文档:http://jenawiki.hpl.hp.com/wiki/TDB/Commands

这是我用来在我的机器上调用 tdbloader 的包装脚本:

#!/bin/bash
# Cygwin script to import large NT files in TDB.

CD /cygdrive/c/mypath/TDB-0.8.10
echo "TDB found. Setting path"
export TDBROOT=/cygdrive/c/mypath/TDB-0.8.10
export PATH=$PATH:$TDBROOT/bin

CD /cygdrive/c/mypath/ontodata/
echo "Running import..."
tdbloader --loc ./tdb ./datasets/large_file.nt

这是我得到的错误:

java.lang.NoClassDefFoundError: tdb/tdbloader
Caused by: java.lang.ClassNotFoundException: tdb.tdbloader
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: tdb.tdbloader.  Program will exit.
Exception in thread "main"

tdbloader 在 Mac 和 Linux 上运行良好。

有什么想法吗?

穆龙

【问题讨论】:

  • tdbloader 是否在您的脚本之外工作?尝试在 exec java 行之前添加echo $TDB_CP,以检查类路径是否设置正确。

标签: windows cygwin jena classnotfoundexception tdbloader


【解决方案1】:

正如我在另一个答案中已经向您提到的,问题分别是 Linux 和 Windows 中的 :; 类路径分隔符。有关详细信息,请参阅 this FAQ,这表明您应该调整脚本以包含 cygpath

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多