This page is no longer maintained — Please continue to the home page atwww.scala-lang.org
As a first example, we use the standardHello world program to demonstrate the use of the Scala tools without knowing too much about the language.
object HelloWorld {def main(args: Array[String]) { println("Hello, world!") } }
The structure of this program should be familiar to Java programmers: it consists of the methodmain which prints out a friendly greeting to the standard output.
We assume that both the Scala software and the user environment are set up correctly. For example:
Environment Variable Value (example) Unix $SCALA_HOME$PATH /usr/local/share/scala$PATH:$SCALA_HOME/binWindows %SCALA_HOME%%PATH% c:\Progra~1\Scala%PATH%;%SCALA_HOME%\bin
Thescala command starts an interactive shell where Scala expressions are interpreted interactively.
> scala This is a Scala shell. Type in expressions to have them evaluated. Type :help for more information.scala> object HelloWorld { | def main(args: Array[String]) { | println("Hello, world!") | } | } defined module HelloWorldscala> HelloWorld.main(null) Hello, world! unnamed0: Unit = ()scala>:q
The shortcut:q stands for the internal shell command:quit used to exit the interpreter.
The above Scala program may also be run as a shell script respectively as a batch command (see the examples in the man pages of thescala command).
Thebash shell scriptscript.sh containing the following Scala code (and shell preamble)
#!/bin/sh
exec scala "$0" "$@"
!#object HelloWorld {def main(args: Array[String]) { println("Hello, world! " + args.toList) } } HelloWorld.main(args)
can be run directly from the command shell:
> ./script.sh
Note: We assume here the file
script.shhas execute access and the search path for thescalacommand is specified in thePATHenvironment variable.
Thescalac command compiles one (or more) Scala source file(s) and generates Java bytecode which can be executed on anystandard JVM; the Scala compiler works similarly tojavac, the Java compiler of theJava SDK.
> scalac HelloWorld.scalaBy defaultscalac generates the class files into the current working directory. You may specify a different output directory using the-d option.
> scalac -d classes HelloWorld.scalaThescala command executes the generated bytecode with the appropriate options:
> scala HelloWorldscala allows us to specify command options, such as the-classpath (or-cp) option:
> scala -classpath classes HelloWorldThe argument of thescala command has to be a top-level object. If that object is followed by the clauseextends Application, then all statements contained in that object will be executed; otherwise you have to add a methodmain which will act as the entry point of your program.
Here is how it looks like:
object HelloWorld2extends Application { println("Hello, world!")}
Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland