我正在尝试开始使用jena基础知识,但是当我导入包时
import org.apache.jena.rdf.model.*;
并编译
javac -cp "~/api/apache-jena-3.10.0/lib/*:." Foo.java
我只是在导入行上得到包不存在的错误。
我已经仔细检查过该文件夹应该在哪里,它是新安装的,我已经导出了路径
export JENA_HOME=~/api/apache-jena-3.10.0
export PATH=$PATH:$JENA_HOME/bin
正如jena主页所建议,确认它已安装“sparql --version”,并测试“cd $ JENA_HOME”按预期工作。我也找不到任何同样问题的帖子。
非常感谢一些帮助!
~
和*
的扩展规则是这样的,~
将替换为“”字符串之外的主目录,但是单独留在内部并且*
在文件系统外部匹配但不在内部。
你想单独留下*
,所以Java看到它(它对-cp
有特殊意义 - 它只匹配jar文件)。
试试“$ HOME / api / apache-jena-3.10.0 / lib / *”或〜/ api / apache-jena-3.10.0 / lib / *
在第一个,$var
规则适用,$HOME
被替换,*
不受影响。
在第二个,~
被替换,*
逃脱,所以它是独自的。小心它在使用后不会扩展。如果您指定一个变量,例如在export
中使用“”围绕任何变量的使用。
将JENA_HOME变量的路径导出为
export JENA_HOME=~/api/apache-jena-3.10.0/lib/*
在我的情况下,因为根据pom.xml
<resources>
<resource>
<!-- Use resource filtering to replace references to the artifactId in
the plugin.xml file -->
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
所以我们应该将jar文件放在资源文件中,然后正常编译项目