2011年4月22日 星期五

2-1. Scala工具 --原始碼的編譯與執行

要學習 Scala 需要先將 Scala 的環境準備好。

這一篇我們將介紹 Scala 的開發工具,但不會詳細介紹 Scala 的各種工具。

本系列的主要目的,是讓大家瞭解  Scala ,可以順利執行 Scala,對於較進階的工具,請各位具備 Scala 基礎知識之後,再自行接觸。

開發 Java 程式,你需要的是 JDK,就是 javac 與 java 兩隻程式。你當然也可使用 IDE 環境來開發 Java 程式,或是使用 Ant、Maven 等工具來編譯你的 Java 程式碼,但這些進階的工具並不是開發 Java 程式所必備。

同樣,在 Scala 世界,我們也只需基本工具就可開發 Scala 程式,我們不擬討論 Scala 中進階的工具,但我們會告訴你到何處取得這些資訊。

Scala 的開發與 Java 相類似,一個editor,一個compiler,一個executor,就可以了,很簡單。

editor 你自行準備,compiler 與 executor 這邊會告訴你。

Scala 的基礎工具可以到 Scala 的大本營 (http://www.scala-lang.org/) 去 download,裡面會包含 compiler 與 executor,還有其他的東西。

在進行之前,請記得 Scala 所編譯出來的就是 Java 的 Bytecode(Scala 也可編譯出 .Net 的程式碼,但 .Net 本系列不擬討論,有興趣者自行到 Scala 大本營查詢)。

Scala 的執行與 Java 的執行一樣,都由 JVM 啟動,所以執行 Scala 程式,會依循 JVM 的原則,在執行階段做 linkage(所謂的 linkage 就是找到正確的 class files),所以請記得設定好你的classpath。

要順利執行 Scala,首先需要 JDK,關於 JDK 的取得與安裝,你應該會知道,其他的步驟如下:

一. Download Scala package、解壓縮、設定PATH
  • Download 回來的 scala,把它解壓縮到一個目錄,記得將該目錄的bin子目錄加到你的PATH中。
  • 例如:你將 download 回來的 scala 解壓縮到 c:\scala\ 目錄底下,此時你需要將 c:\scala\bin 放到 PATH 中。
二.設定 classpath
  • 將 c:\scala\lib 加到你的 classpath 中。
  • 此步驟是當你想要使用 java 執行檔直接執行你寫的 Scala 程式時。
三.compile
  • 當你程式撰寫完成,需使用 Scala 的 compiler 編譯你的程式碼。Scala 編譯出來的程式碼是 Java bytecode(也有 .Net 環境的 CLR碼,本系列不討論)。Scala 的 compiler 有兩個,一個稱為 scalac,另一個稱為 fsc,二者功用完全相同。
  • 第一次使用 fsc(fast scala compiler)時,會啟動 compilation daemon,常駐在記憶體中,下次再使用 fsc 時,就會直接使用該 daemon,加快 compile 速度。
  • 使用 fsc 或是 scalac 來 compile 你的Scala程式碼,fsc/scalac 與 javac 的用法類似,會將 Scala 編譯出來的 bytecode 放到你指定的目錄中。關於 fsc/scalac 的詳細命令請自行參考命令的用法。
範例:使用 fsc compile 程式

四.執行
  • 當 compile 完畢後,就可以使用 scala class_name 來執行。
  • 與 Java 相同,compile 後 bytecode 放置的位置需要設定到 classpath 中,否則會有 class not found 的 exception 產生。

五.第二種執行方式
  • Scala 所編譯出來的 bytecode 與 Java 所編譯出來 bytecode 並沒有分別,可以直接使用 java 這個命令來執行 Scala 所編譯出來的 class。
  • 使用 JVM 直接啟動 Scala所產生的 bytecode,需要將 Scala 所附的library(該 library 名稱為scala-library.jar,該 .jar 檔在你 scala 目錄中的 lib 子目錄可找得到)加到你的 classpath,然後依照一般 Java 程式啟動的方法即可啟動。
1.直接使用java執行 X2,但 X2 是 scalac 所 compile 出來的 bytecode,所以無法執行!








2.加上 scala-library.jar,再執行一次,這次就OK了。





要準備的開發環境就是這麼簡單,與 Java 的大同小異,你若熟悉 Java,應該不會有問題。

沒有留言:

張貼留言