2010-09-02 15 views

Respuesta

46

Puede ejecutar el código de bytes generado por Scala si incluye todas las bibliotecas de ejecución necesarias para Scala (scala-library.jar, scala-swing.jar ...) en el classpath. El comando scala hace esto automáticamente y admite argumentos de línea de comando específicos de Scala.

5

Scala está diseñado para integrarse fácilmente con aplicaciones que se ejecutan en máquinas virtuales modernas, principalmente la máquina virtual de Java (JVM). El compilador principal de Scala , scalac, genera los archivos de la clase Java que se pueden ejecutar en la JVM. ->http://www.artima.com/scalazine/articles/steps.html

Mientras que haya instalado el tiempo de ejecución Scala que debe estar bien: compilar clases con scalac y ejecutarlos con java.

12

Sí, puede. Scala está compilado en Java bytecode. Pero recuerde que depende de las clases de tiempo de ejecución de Scala, por lo que necesita tener los archivos jar de Scala en classpath.

Si es así, ¿por qué tenemos un comando exclusivo scala?

Envoltura de conveniencia.

+1

Scala es un intérprete, mientras scalac es una imagen de obsequio iler ... no solo por conveniencia sino también por una técnica diferente. – atamanroman

+0

Puede iniciar el intérprete scala con el comando "java" si lo intentó ... – Thilo

+0

También puede iniciar el compilador, es simplemente otra clase que debe ejecutarse (scala.tools.nsc.Main, con los argumentos apropiados) Pero la conveniencia es conveniente, entonces ¿por qué hacerlo de la manera difícil? –

3

Sólo quiero añadir mi propia respuesta como valor adicional para los futuros lectores:

Scala, si se ejecuta sin parámetros, se ejecutará un shell interactivo

Scala, si se ejecuta con un nombre de archivo de texto como parámetro, se considerará el archivo como un script Scala

los dos no se puede hacer usando java

+4

Ambos se pueden hacer, pero es particularmente molesto hacerlo: debe llamar a scala.tools.nsc.MainGenericRunner y asegurarse de que las herramientas adecuadas se encuentran en el classpath. ¿Por qué no dejar que la secuencia de comandos Scala lo haga por usted? –

Cuestiones relacionadas