问题描述
我试图在Cygwin上使用tbdloader(Windows 7使用最新的Java安装)。这是tbdloader文档:
这是我用来在我的机器上调用tdbloader的包装脚本:
#!/ bin / bash
#Cygwin脚本在TDB中导入大型NT文件。
CD /cygdrive/c/mypath/TDB-0.8.10
echoTDB found。设置路径
export TDBROOT = / cygdrive / c / mypath / TDB-0.8 .10
export PATH = $ PATH:$ TDBROOT / bin
CD / cygdrive / c / mypath / ontodata /
echo正在导入...
tdbloader --loc ./tdb ./datasets/large_file.nt
这是我得到的错误:
java.lang.NoClassDefFoundError:tdb / tdbloader
原因:java.lang.ClassNotFoundException:tdb.tdbloader
在java.net.URLClassLoader $ 1.run(未知源)
在java.security.AccessController.doPrivileged(本地方法)
在java.net.URLClassLoader.findClass(未知来源)
at java.lang.ClassLoader.loadClass(未知源)
at sun.misc.Launcher $ AppClassLoader.loadClass(未知源)
at java.lang.ClassLoader.loadClass(未知源)
找不到主类:tdb.tdbloader。程序将退出。
线程main中的异常
tdbloader在Mac和Linux上正常工作。
Mulone
正如我在另一个答案中已经提到的,问题是:
和;
分别在Linux和Windows中的类路径分隔符。有关详情,请参见,建议您调整脚本以包含 cygpath
。
I'm trying to use tbdloader on Cygwin (Windows 7 with the latest Java installation). This is the tbdloader documentation: http://jenawiki.hpl.hp.com/wiki/TDB/Commands
This is the wrapper script I'm using to call tdbloader on my machine:
#!/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
This is the error I get:
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"
The tdbloader works fine on Mac and Linux.
Any ideas?
Mulone
As I already mentioned to you in another answer, the issue is the :
and ;
classpath separators in Linux and Windows respectively. See this FAQ for details, which suggests you should adapt the script to include cygpath
.
这篇关于tdbloader on Cygwin:java.lang.NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!