将多个类路径条目添加到scala REPL类路径

时间:2014-06-16 23:02:00

标签: scala classpath read-eval-print-loop

:cp似乎只接受一个条目

scala> :cp /usr/lib/hadoop/*:/usr/lib/hadoop/lib/*:/usr/lib/hbase/*:/usr/lib/hbase/lib/*:
/home/sboesch/spark-master/lib_managed/jars/*:/home/sboesch/spark-master/lib_managed/bundles/*:

The path '/usr/lib/hadoop/*:/usr/lib/hadoop/lib/*:/usr/lib/hbase/*:/usr/lib/hbase/lib/*:/home/sboesch/spark-master/lib_managed/jars/*:/home/sboesch/spark-master/lib_managed/bundles/*:' 
doesn't seem to exist.

当已经在REPL 中时,有关如何执行此操作的任何想法。是的我知道如何从REPL 之外的设置它:

CLASSPATH=/usr/lib/hadoop/*:/usr/lib/hadoop/lib/*:/usr/lib/hbase/*:/usr/lib/hbase/lib/*
:/home/sboesch/spark-master/lib_managed/jars/*:
/home/sboesch/spark-master/lib_managed/bundles/*:  scala 

编辑似乎目的不明确。我正在研究REPL中的代码。然后有一个新的代码片段,需要一些类路径条目。这是一个关闭事件:所以我不想添加到build.sbt或scala / lib目录等。我没有得到任何答案真正令人满意这个用例,但无论如何都给予了最好的努力。

3 个答案:

答案 0 :(得分:2)

scala -cp" path1:path2"现在似乎工作。

  

scala -version拿起_JAVA_OPTIONS:-Xms512m -Xmx4096m   -XX:MaxPermSize = 1024m -XX:ReservedCodeCacheSize = 128m Java HotSpot(TM)64位服务器VM警告:忽略选项MaxPermSize = 1024m;支持   已在8.0 Scala代码运行器版本2.11.8中删除 - 版权所有   2002-2016,LAMP / EPFL

答案 1 :(得分:1)

:cp的帮助文字说:

:cp <path>               add a jar or directory to the classpath

所以我猜你没有确切的方法来获得它。我会用这个:

:load <path>             interpret lines in a file

我确认它适用于REPL命令以及Scala代码。

<强>附录:

如果您使用SBT,则所有项目依赖项都在SBT的console任务启动的REPL的类路径中。

答案 2 :(得分:1)

快速而肮脏的方法,将$ SCALA_HOME / lib /中的链接添加到包含其他jar文件的文件夹中。然后从REPL您可以导入感兴趣的包。