¿Cómo iniciar un método Scala desde la línea de comandos?
Esta pregunta puede sonar un poco estúpida, pero no pude averiguar cómo iniciar un método Scala desde la línea de comandos.
Compilé el siguiente archivoTest.scala
:
package example
object Test {
def print() {
println("Hello World")
}
}
conscalac Test.scala
.
Entonces, puedo ejecutar el métodoprint
conscala
en dos pasos:
C:\Users\John\Scala\Examples>scala
Welcome to Scala version 2.9.2 (Java HotSpot(TM) Client VM, Java 1.6.0_32).
Type in expressions to have them evaluated.
Type :help for more information.
scala> example.Test.print
Hello World
Pero lo que realmente me gusta hacer es ejecutar el método directamente desde la línea de comandos con un comando comoscala example.Test.print
.
¿Cómo puedo lograr este objetivo?
ACTUALIZAR: La solución sugerida por ArikG no me funciona. ¿Qué me estoy perdiendo?
C:\Users\John\Scala\Examples>scala -e 'example.Test.print'
C:\Users\John\AppData\Local\Temp\scalacmd1874056752498579477.scala:1: error: u
nclosed character literal
'example.Test.print'
^
one error found
C:\Users\John\Scala\Examples>scala -e "example.Test.print"
C:\Users\John\AppData\Local\Temp\scalacmd1889443681948722298.scala:1: error: o
bject Test in package example cannot be accessed in package example
example.Test.print
^
one error found
dónde
C:\Users\John\Scala\Examples>dir example
Volume in drive C has no label.
Volume Serial Number is 4C49-8C7F
Directory of C:\Users\John\Scala\Examples\example
14.08.2012 12:14 <DIR> .
14.08.2012 12:14 <DIR> ..
14.08.2012 12:14 493 Test$.class
14.08.2012 12:14 530 Test.class
2 File(s) 1.023 bytes
2 Dir(s) 107.935.760.384 bytes free
ACTUALIZACIÓN 2 - Posibles SOLUCIONES:
Como ArikG sugirió correctamente, conscala -e "import example.Test._; print"
Funciona bien con Windows 7.Vea la respuesta de Daniel para que funcione sin la declaración de importación.