Reputation: 201
If I have two separate uncompiled scala files in the same directory as:
// hello.scala
object hello {
def world() = println("hello world")
}
and:
// do.scala
hello.world()
I get an error when running do.scala:
$ scala do.scala
error: not found: value hello
Instead I have to compile the hello.scala file first and put it on the classpath to get it to work:
$ scalac hello.scala
$ scala -cp hello do.scala
hello world
Is there a way to get one script to call the other uncompiled scala file using the right use of import, package, classpath, the scala command line tool or something else?
Upvotes: 13
Views: 1483
Reputation: 59
You can just put
:load /path/file
at the first line in the file you are going to load.
Upvotes: 0
Reputation: 24892
Maybe not exactly what you're looking for, but from the Scala REPL shell you can do
:load hello.scala
:load do.scala
to achieve the same result:
$ scala
Welcome to Scala version 2.9.1 (Java HotSpot(TM) Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.
scala> :load hello.scala
Loading hello.scala...
defined module hello
scala> :load do.scala
Loading do.scala...
hello world
scala>
If you're wanting something non-interactive for scripting
$ cat <<EOF | scala
:load hello.scala
:load do.scala
EOF
works too.
Use :help
for more interesting things the REPL shell can do.
Upvotes: 8