我正在学习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
此问题与“如何设置Java CLASSPATH”比Jena本身更相关。 Jena只是您在Java CLASSPATH中需要拥有的一组jar(与许多其他Java项目一样)。 – castagna
确实如此,但我也被Jena zip文件弄糊涂了,究竟是什么类文件(如果它帮助执行程序)或者如果有一个可执行文件在下面的答案。 – SabineA