2012-06-20 56 views
0

我正在学习Jena API,我想使用Schemagen创建类似于我自己词汇表的包com.hp.hpl.jena.vocabulary中的类;从命令行/类路径设置中执行Schemagen(Jena)

我在http://www.apache.org/dist/incubator/jena/apache-jena-2.7.0-incubating/的地方下载了Jena。一旦下载,我解压缩并保持原样。

C:\ Users \ moi \ NetBeansProjects \ apache-jena-2.7.0-incubating \ apache-jena-2.7.0-incubating 是有bat文件夹,bin文件夹,javadoc- arq文件夹等

我在我的一个项目中使用C:\ Users \ moi \ NetBeansProjects \ apache-jena-2.7.0-incubating \ apache-jena-2.7.0-incubating \与相对链接的lib,它的工作原理。

为了简化在命令行中的使用,我在lib文件夹中移动了我的文件“MyKnowledgeBase.rdf”。

我从lib文件夹

java jena.schemagen -i "myKnowledgeBase.rdf" 

尝试和得到这个

Exception in thread "main" java.lang.NoClassDefFoundError: jena/schemagen 
Caused by: java.lang.ClassNotFoundException: jena.schemagen 
    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: jena.schemagen. Program will exit. 

于是,我就设置类路径:

C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating\lib> 
set CLASSPATH=commons-codec-1.5.jar;httpclient-4.1.2.jar;httpcore-4.1.3.jar;icu4j3.4.4.jar;jena.arq-2.9.0-incubating.jar;jena.core-2.7.0-incubating.jar;jena.iri0.9.0-incubating.jar;log4j-1.2.16.jar;slf4j-api-1.6.4.jar;slf4j-log4j12-1.6.4.jar;xercesImpl-2.10.0.jar; xml-apis-1.4.01.jar; 

但我还是同样的错误。我也

java -cp commons-codec-1.5.jar;httpclient-4.1.2.jar;httpcore-4.1.3.jar;icu4j3.4.4.jar;jena.arq-2.9.0-incubating.jar;jena.core-2.7.0-incubating.jar;jena.iri0.9.0-incubating.jar;log4j-1.2.16.jar;slf4j-api-1.6.4.jar;slf4j-log4j12-1.6.4.jar;xercesImpl-2.10.0.jar; xml-apis-1.4.01.jar; jena.schemagen -i myKnowledgeBase.rdf 

试过当我做

echo %CLASSPATH% 

我得到了我进入

我试图用设置CLASSPATH为每个罐子的绝对路径,并没有太多工作。

所以现在我不知道该怎么做。

在耶拿,我发现从耶拿核-2.7.0-incubating.jar(与NetBeans)包“耶拿”的schemagen.class

随着探险家我没找到类文件。

我已经运行在命令行中的几个项目做Java的罐子所以Java和命令行是确定

谢谢您的帮助

编辑: 我删除了参数-classpath之间的空间和%CLASSPATH%,我得到了不同的东西\ o /仍然无法正常工作,但它正在进行中!

“无法识别的选项”和“无法创建Java虚拟机”

EDIT2: 正如我无法来解决这个我创建与NetBeans的新项目。我创建了一个schemagen类的副本,将其作为主类,将所有jar包含为库。 然后:

java -jar "C:\Users\moi\NetBeansProjects\MyJena\dist\MyJena.jar" -i "myKnowledgeBase.rdf" -o "C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating\lib" --ontology 
+0

此问题与“如何设置Java CLASSPATH”比Jena本身更相关。 Jena只是您在Java CLASSPATH中需要拥有的一组jar(与许多其他Java项目一样)。 – castagna

+0

确实如此,但我也被Jena zip文件弄糊涂了,究竟是什么类文件(如果它帮助执行程序)或者如果有一个可执行文件在下面的答案。 – SabineA

回答

1

在最近的所有版本,包括耶拿2.7.0,提供了所有的耶拿命令行工具Linux的shell和Windows批处理脚本。这些脚本适当地设置CLASSPATH。由于您似乎在使用Windows,因此您应该使用bat\schemagen.bat