我正在尝试入门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”是否按预期工作。我也找不到相同问题的帖子。
非常感谢您的帮助!
答案 0 :(得分:2)
~
和*
的扩展规则是将~
替换为您的主目录,而不是“”字符串,但将其留在其中,并且将*
匹配在“”之外但不在内部时访问文件系统。
您想不理会*
,因此Java会看到它(它对-cp
有特殊含义-它仅与jar文件匹配)。
尝试“ $ HOME / api / apache-jena-3.10.0 / lib / *”或〜/ api / apache-jena-3.10.0 / lib / *
首先,将应用$var
条规则,并替换$HOME
并保持*
不变。
在第二个步骤中,~
被替换并且*
被转义,因此它被单独放置。请注意,以后使用时它不会膨胀。如果您分配给变量,例如在export
中,在变量的所有用法附近使用“”。
答案 1 :(得分:1)
将JENA_HOME变量的路径导出为
export JENA_HOME=~/api/apache-jena-3.10.0/lib/*
答案 2 :(得分:1)
在我的情况下,因为根据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文件放在资源文件中,然后项目才能正常编译