CentOSにScala実行環境構築
と言うわけで本日は、CentOSにプログラミング言語、Scala(すけいら?すから?)の実行環境をインストールしてみたいと思います。
これまで学生時代から含めてアセンブラ、BASIC、C、C++、Java、PHP、VBA、.net、Ajax(JavaScript)、、、とメジャー所は少しずつかじってきましたが、久しぶりに初体験な言語を味見してみたいと思います。w
環境
CentOS 5.5 final (VMware Fusion)
jdk-1.6.0_17
Scalaのダウンロード、展開
まずはScalaをダウンロード、展開します。
# cd /usr/local/src/ # wget http://www.scala-lang.org/downloads/distrib/files/scala-2.8.1.final.tgz # tar xvfz scala-2.8.1.final.tgz
とりあえずHello Worldでも
Scalaには対話型の実行環境、REPLというものが用意されているみたいです。
まだまだライブラリを展開しただけですが、とにかく早くScalaを味見してみたいので、パスを通したりすることもせずそそくさとREPLを使ってみましょう。w
# cd scala-2.8.1.final/bin # ./scala Welcome to Scala version 2.8.1.final (OpenJDK Client VM, Java 1.6.0_17). Type in expressions to have them evaluated. Type :help for more information. scala>
おぉっ!普通に動きました!
スケーラーな人達の間では当たり前かもしれませんが、javaのパスが通っていないと実行出来なかったと思います。
ではでは、Hello Worldでも、、、
scala> printf("Hello World"); Hello World
おぉっ!!(度々すみません。
次はいよいよコンパイル、実行までを見てみましょう。
ちなみにREPLを終了する時は、コンソールにexit、もしくは:qと入力しリターンするか、CTRL+Cで終了出来るようです。
ひとまずCTRL+Cで終了するのは気持ち悪いので、ここではexitでコンソールを終了します。
scala> exit #
scalacでコンパイル
まずはコンパイル対象のobjectを作成しましょう。今回はシンプルに、以下のファイルを作成してみました。
# vi /home/akiiiiiiiio/hello.scala object hello { def main( arg:Array[String] ):Unit = { println( "Hello World") } }
・・・ん?object・・・?
筆者自身、objectってなんですか?と思いながらも、何も考えずに作成してみました。w
いざコンパイルをば、、、
# ./scalac /home/akiiiiiiiio/hello.scala -d /home/akiiiiiiiio/ # ll /home/akiiiiiiiio/hello.scala hello.class hello$.class hello.scala
おぉぉっ!!!!!!!
hello.classはなんとなくわかりますが、hello$.classってなんでしょうか??
scalaで実行
・・・とにかく実行してみよう!!!w
# ./scala /home/akiiiiiiiio/hello.class error: IO error while decoding /home/akiiiiiiiio/hello.class with UTF-8 Please try specifying another one using the -encoding option one error found
んぁっ!!
なんとここまできてまさかの実行時にエラーが、、、汗
-encodingオプションを使ってUTF-8で実行しろみたいな意味ですか??汗
ふとscalacのヘルプを見ると以下のようなオプションがありました。
# ./scalac [snip] -encoding <encoding> Specify character encoding used by source files [snip]
これはもしやと思いもう一度コンパイル、実行してみました。
# ./scalac /home/akiiiiiiiio/hello.scala -d /home/akiiiiiiiio/ -encoding UTF-8 # ./scala /home/akiiiiiiiio/hello.class error: IO error while decoding /home/akiiiiiiiio/hello.class with UTF-8 Please try specifying another one using the -encoding option one error found
だめか。。。
試しに実行環境の文字コードも確認してみましたが、問題なさそうです。
# echo $LANG ja_JP.utf8
ん〜〜〜。。