WestCoastProjects
WestCoastProjects

Reputation: 63239

Add multiple classpath entries to scala REPL classpath

:cp seems to only accept a single entry

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.

Any thoughts on how to do this when already in the REPL. Yes I know how to set it up from outside the 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 

EDIT It seems the intent were not clear. I am working on code in the REPL. Then have a new snippet of code that requires a few classpath entries. It is a ONE OFF affair: so I do not want to add to build.sbt or to the scala/lib dir , etc. I did not receive any answer really satisifying this use case, but awarded the best efforts anyways.

Upvotes: 4

Views: 3231

Answers (3)

Chris Prince
Chris Prince

Reputation: 7584

scala -cp "path1:path2" now seems to work.

scala -version Picked up _JAVA_OPTIONS: -Xms512m -Xmx4096m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=128m Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0 Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL

Upvotes: 3

Randall Schulz
Randall Schulz

Reputation: 26486

The help text for :cp says:

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

So I'm guessing there's no exact way for you to get that. I'd use this:

:load <path>             interpret lines in a file

I confirmed that it works for REPL commands as well as Scala code.

Addendum:

If you use SBT then all your projects dependencies are in the class-path for the REPL launched by SBT's console task.

Upvotes: 2

elm
elm

Reputation: 20435

A quick and dirty approach, add a link from $SCALA_HOME/lib/ to a folder with additional jar files. Then from REPL you can import packages of interest.

Upvotes: 1

Related Questions