[bpdp@bpdp-arch lib]$ sbaz install jline planning to install: jline/0.9.91 Installing... [bpdp@bpdp-arch ~]$ sbaz install scalashell-scala planning to install: scalashell-library/0.1 planning to install: scalashell-scala/0.1 Installing... [bpdp@bpdp-arch ~]$
Setelah selesai, scalash harus dibuat executable dengan perintah berikut (asumsi: scala terinstall di ~/software/scala-2.7.7/):
[bpdp@bpdp-arch ~]$ chmod +x software/scala-2.7.7.final/bin/scalash
Pada awalnya, jika dijalankan akan muncul error berikut ini:
[bpdp@bpdp-arch ~]$ scalash Scala Shell version 0.1 ($(java.vm.name), Java 1.6.0_18) scala:0> Exception in thread "main" java.lang.ClassNotFoundException: binder0 at scala.tools.nsc.interpreter.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:27) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at scala.tools.nsc.Interpreter.bind(Interpreter.scala:543) at org.scalashell.scalash.ScalaShell$$anonfun$bindSettings$1.apply(ScalaShell.scala:64) at org.scalashell.scalash.ScalaShell$$anonfun$bindSettings$1.apply(ScalaShell.scala:61) at scala.tools.nsc.Interpreter.beQuietDuring(Interpreter.scala:110) at org.scalashell.scalash.ScalaShell.bindSettings(ScalaShell.scala:61) at org.scalashell.scalash.ScalaShell.repl(ScalaShell.scala:106) at org.scalashell.scalash.ScalaShell.run(ScalaShell.scala:183) at org.scalashell.scalash.Main$.main(Main.scala:54) at org.scalashell.scalash.Main.main(Main.scala) [bpdp@bpdp-arch ~]$
Workaround untuk error tersebut adalah dengan menjalankan scalash di direktori $SCALA_HOME/lib. Berikut adalah snapshotnya:
[bpdp@bpdp-arch lib]$ pwd /home/bpdp/software/scala-2.7.7.final/lib [bpdp@bpdp-arch lib]$ scalash Scala Shell version 0.1 ($(java.vm.name), Java 1.6.0_18) scala:0> :help Available commands: :help - Display the list of commands or the help text for command :history - Display, manage and recall edit-line history :load - Load and interpret one or more files For help on a specific command type: help command scala:1> [bpdp@bpdp-arch lib]$ ls -la total 11684 drwxr-xr-x 3 bpdp users 4096 Apr 17 21:26 . drwxr-xr-x 10 bpdp users 4096 Apr 17 21:08 .. -rw-r--r-- 1 bpdp users 1566 Apr 17 21:26 RequestResult$line0$object$.class -rw-r--r-- 1 bpdp users 669 Apr 17 21:26 RequestResult$line0$object.class -rw-r--r-- 1 bpdp users 984 Apr 17 21:26 binder0$.class -rw-r--r-- 1 bpdp users 845 Apr 17 21:26 binder0.class -rw-r--r-- 1 bpdp users 61187 Apr 17 21:22 jline.jar -rw-r--r-- 1 bpdp users 741 Apr 17 21:26 line0$object$$iw$$iw$.class -rw-r--r-- 1 bpdp users 510 Apr 17 21:26 line0$object$$iw$.class -rw-r--r-- 1 bpdp users 502 Apr 17 21:26 line0$object$.class -rw-r--r-- 1 bpdp users 632 Apr 17 21:26 line0$object.class -rw-r--r-- 1 bpdp users 27333 Oct 28 20:19 sbaz-tests.jar -rw-r--r-- 1 bpdp users 416030 Oct 28 20:19 sbaz.jar drwxr-xr-x 3 bpdp users 4096 Apr 17 17:54 scala -rw-r--r-- 1 bpdp users 6359523 Oct 28 20:19 scala-compiler.jar -rw-r--r-- 1 bpdp users 269699 Oct 28 20:19 scala-dbc.jar -rw-r--r-- 1 bpdp users 3789991 Oct 28 20:19 scala-library.jar -rw-r--r-- 1 bpdp users 224578 Feb 26 22:26 scala-partest.jar -rw-r--r-- 1 bpdp users 623359 Oct 28 20:19 scala-swing.jar -rw-r--r-- 1 bpdp users 57833 Apr 17 21:07 scalashell-library-0.1.jar -rw-r--r-- 1 bpdp users 30564 Apr 17 21:07 scalashell-scala-0.1.jar [bpdp@bpdp-arch lib]$
Kelihatannya scalashell memerlukan beberapa file .jar dari Scala sekaligus membuat beberapa class (temporary?) seperti di atas (lihat beberapa file .class) yang muncul setelah dijalankan di direktori lib ini.
Dari apa yang telah saya kerjakan, scalash ini lebih nyaman digunakan daripada REPL scala bawaan dari distribusi Scala. Selamat mencoba!