How to add a new jar file to the Scala REPL classpath (interactive command line)

Scala REPL FAQ: How do I add a Jar file to the Scala REPL classpath? (The Scala REPL is the interactive command line you get if you just type scala at your command line.)

To add a new jar file to the Scala REPL classpath (interactive command line classpath), use the :require command at the command line, like this:

scala> :require myjar.jar

After you do this, you should see a reply from the REPL like this:

Added '/Users/Al/tests/myjar.jar'. Your new classpath is: ".:/Users/Al/tests/myjar.jar"

At this time you can begin using the classes in your jar (though you'll have to import them, as usual).

Adding a jar file to the classpath when you start the Scala interpreter

I usually find that I need to add a jar file to the Scala REPL after I've been running the REPL, but if you happen to know that you're going to need to add a jar file to the classpath when you start the interpreter, you can do so like this:

$ scala -cp junit-4.8.1.jar

As you can see, this approach uses the usual "-cp" classpath option that is used by the scalac and javac commands.

Scala REPL help

I learned about the Scala REPL :require command by looking at the help from within the REPL. Here's what that help looks like with my current version of Scala, version 2.12.1:

scala> :help

All commands can be abbreviated, e.g., :he instead of :help.
:edit <id>|<line>        edit history
:help [command]          print this summary or command-specific help
:history [num]           show the history (optional num is commands to show)
:h? <string>             search the history
:imports [name name ...] show import history, identifying sources of names
:implicits [-v]          show the implicits in scope
:javap <path|class>      disassemble a file or class name
:line <id>|<line>        place line(s) at the end of history
:load <path>             interpret lines in a file
:paste [-raw] [path]     enter paste mode or paste a file
:power                   enable power user mode
:quit                    exit the interpreter
:replay [options]        reset the repl and replay all previous commands
:require <path>          add a jar to the classpath
:reset [options]         reset the repl to its initial state, forgetting all session entries
:save <path>             save replayable session to a file
:sh <command line>       run a shell command (result is implicitly => List[String])
:settings <options>      update compiler options, if possible; see reset
:silent                  disable/enable automatic printing of results
:type [-v] <expr>        display the type of an expression without evaluating it
:kind [-v] <expr>        display the kind of expression's type
:warnings                show the suppressed warnings from the most recent line which had any