10.5. Inne sposoby uruchamiania programów

Jeśli w pliku źródłowym znajduje się program zawierający jeden obiekt głównego poziomu posiadający zdefiniowaną jedną, nieodziedziczoną metodę main, to taki program może być uruchomiony za pomocą polecenia scala bez potrzeby uprzedniej jawnej kompilacji. Przykład takiego programu znajduje się w pliku Program1.scala.

Plik Program1.scala:
object Program1 {
  def main(args: Array[String]) {
    println("Hello from Program1")
  }
}

Poniższe polecenie powoduje wykonanie tego programu bez uprzedniej jawnej kompilacji.

$ scala Program1.scala
Hello from Program1

Program z pliku Program2.scala nie spełnia opisanych warunków, gdyż nie posiada zdefiniowanej jawnie metody main, a jedynie metodę main dziedziczoną z cechy App.

Plik Program2.scala:
object Program2 extends App {
  println("Hello from Program2")
}

Dlatego wykonanie poniższego polecenia nie powoduje uruchomienia kodu zdefiniowanego w obiekcie Program2.

$ scala Program2.scala

$

Plik Program3.scala również nie spełnia opisanych warunków, gdyż zawiera dwa obiekty głównego poziomu zawierające metodę main.

Plik Program3.scala:
object Program3 {
  def main(args: Array[String]) {
    println("Hello from Program3")
  }
}
object Program3b {
  def main(args: Array[String]) {
    println("Hello from Program3b")
  }
}

Poniższe polecenie nie uruchamia żadnej ze zdefiniowanych w pliku Program3.scala metod main.

$ scala Program3.scala

$

Program spełniający opisane wyżej warunki, taki jak program z pliku Program1.scala, może być wykonany za pomocą polecenia scala uruchomionego z dodatkową opcją -save. Takie polecenie powoduje, oprócz wykonania programu, wygenerowanie i zapisanie pliku z rozszerzeniem .jar, zawierającego skompilowany kod programu.

$ scala -save Program1.scala
Hello from Program1

$ dir /b Program1.jar
Program1.jar

Tak skompilowany i zapakowany w pliku o rozszerzeniu .jar program można następnie wykonać za pomocą polecenia scala, którego argumentem jest nazwa tego pliku, jak w poniższym przykładzie.

$ scala Program1.jar
Hello from Program1

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.