Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Command line 从命令行/类路径设置执行Schemagen(Jena)_Command Line_Classpath_Rdf_Jena_Schemagen - Fatal编程技术网

Command line 从命令行/类路径设置执行Schemagen(Jena)

Command line 从命令行/类路径设置执行Schemagen(Jena),command-line,classpath,rdf,jena,schemagen,Command Line,Classpath,Rdf,Jena,Schemagen,我正在学习Jena API,我想使用Schemagen为我自己的词汇表创建类似于com.hp.hpl.Jena.词汇表包中的类 我一点也没给杰娜装子弹。下载后,我将其解压缩并保持原样 C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating 是包含bat文件夹、bin文件夹、javadoc arq文件夹等的文件夹 在我的一个项目中,我使用C:\Users\moi\NetBeans

我正在学习Jena API,我想使用Schemagen为我自己的词汇表创建类似于com.hp.hpl.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-Cubating\apache-Jena-2.7.0-Cubating\lib中的所有库以及一个相对链接对Jena进行了测试,结果是有效的

为了便于在命令行中使用,我将文件“MyKnowledgeBase.rdf”移动到lib文件夹中

我从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% 
我得到了我输入的东西

我尝试使用set CLASSPATH和每个jar的绝对路径,但它也不起作用

所以现在我不知道该怎么办

在Jena中,我在Jena-core-2.7.0-incubating.jar(使用netbeans)的包“Jena”中找到了schemagen.class

使用explorer时,我没有找到类文件

我已经在命令行中运行了几个项目来运行java-jar,所以java和命令行都还可以

谢谢你的帮助

编辑: 我删除了参数-classpath和%classpath%之间的空格,得到了一些不同的结果\o/仍然不起作用,但正在进行中

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

编辑2: 由于我无法解决这个问题,我用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

在所有最新版本中,包括Jena 2.7.0,都为所有Jena命令行工具提供了Linux shell和Windows批处理脚本。这些脚本适当地设置了类路径。因为您似乎正在使用Windows,所以应该使用
bat\schemagen.bat
我也遇到了同样的问题。我正在使用Jena 3.10 如果有人有相同的问题,解决方法是使用位于bat文件夹中的schemagen bat文件。 我使用这个命令行生成词汇表


C:\Jena\apache-Jena-3.10.0\bat\schemagen.bat-i“FileName”

这个问题与“如何设置Java类路径”比Jena本身更相关。Jena只是Java类路径中需要的一组JAR(与许多其他Java项目一样)。没错,但我也被Jena zip文件和类文件的确切位置(如果有助于执行程序)弄糊涂了,或者,如果有可执行文件,答案如下。