8

If I issue:

$ 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

Everything works ok, but if instead I issue:

$ 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
                  ^

Am I missing something?

4

3 回答 3

5

似乎没有人提到这一点,但正确的解决方案是使用:require命令

scala> :require foo.jar
Added 'foo.jar' to classpath.
于 2016-08-14T18:36:14.500 回答
0

导入 jar 文件的另一种方法(在这种情况下默认情况下)是将 $SCALA_HOME/lib 中的链接添加到感兴趣的 jar 文件。然后每次进入REPL,都会上传这样的链接jar。

例如,对于poi-3.9-20121203.jar,考虑

(cd $SCALA_HOME/lib && ln -s full_path_to_poi_jar/poi-3.9-20121203.jar)
于 2014-10-30T08:20:13.883 回答
0

如评论中所述,这是一个已知问题。您可以使用替代 REPL 实现,例如Ammonite

于 2015-12-10T11:53:33.677 回答