不能使用:cp命令向scala repl添加jar
如果我发出:
$ scala -classpath poi-3.9/poi-3.9-20121203.jar
scala> import org.apache.poi.hssf.usermodel.HSSFSheet
import org.apache.poi.hssf.usermodel.HSSFSheet
一切正常,但如果我发出:
$ scala
scala> :cp poi-3.9/poi-3.9-20121203.jar
Added '/home/sas/tmp/poi/poi-3.9/poi-3.9-20121203.jar'. Your new classpath is:
".:/home/sas/tmp/poi/poi-3.9/poi-3.9-20121203.jar"
Nothing to replay.
scala> import org.apache.poi.hssf.usermodel.HSSFSheet
<console>:7: error: object apache is not a member of package org
import org.apache.poi.hssf.usermodel.HSSFSheet
^
我错过了什么吗?
似乎没有人提到这一点,但正确的解决方案是使用:require
命令:
scala> :require foo.jar
Added 'foo.jar' to classpath.
导入jar文件的另一种方式是,在这种情况下默认情况下,将$ SCALA_HOME / lib中的链接添加到感兴趣的jar文件中。 然后每次输入REPL时,这些链接的罐子都会上传。
例如,对于poi-3.9-20121203.jar
,请考虑
(cd $SCALA_HOME/lib && ln -s full_path_to_poi_jar/poi-3.9-20121203.jar)
正如评论中指出的那样,这是一个已知的问题。 您可以使用替代的REPL实现,如Ammonite。
链接地址: http://www.djcxy.com/p/73261.html