2009-12-12 10 views
7

Si he escrito un programa Scala, ¿puedo compilarlo de forma que cualquier persona con una JVM Sun Java estándar pueda ejecutarlo? Supongo que el compilador de Scala debería incluir el código API específico de Scala en el proyecto compilado. La razón por la que estoy interesado es que nuestros proyectos de clase generalmente se pueden entregar en el idioma que uno prefiera, pero los TA que clasifican las entregas generalmente quieren ejecutar el código en su propia máquina o en máquinas de laboratorio.¿Se puede compilar un programa Scala para ejecutar en cualquier JVM, sin tener Scala instalado en la máquina determinada?

Respuesta

20

No necesita hacer nada especial para ejecutar su programa compilado de Scala en JVM. Es simplemente un bytecode de JVM. Lo único que necesita es asegurarse de que la biblioteca Scala estándar (scala-library.jar) esté incluida en su ruta de clase en tiempo de ejecución. Esto es solo una dependencia adicional (o tal vez también necesite scala-swing.jar si usa Swing wrappers para su GUI).

Si le preocupa la conveniencia para el usuario, incluso puede empaquetar su aplicación en un solo contenedor para que contenga los contenidos de scala-library.jar y sus propias clases y recursos. Pero personalmente lo haría solo si este jar es ejecutable (se puede ejecutar como java -jar yourApplication.jar).

Notas sobre Scala de biblioteca:

  1. Proporciona sólo eso - biblioteca. Sin intérprete, sin compilador o entorno de ejecución especial de algún tipo; así que no debes preocuparte por los problemas de carga de clases.
  2. Debe coincidir con la versión de Scala que está utilizando durante la compilación de su programa (la biblioteca de Scala para 2.7 y para 2.8 no son intercambiables).
  3. Se puede encontrar en su distribución Scala: lib/scala-library.jar
5

Sí. Si incluye el archivo jar de la biblioteca scala apropiado en el classpath, se puede ejecutar un programa scala usando java, ya que el código scala compilado es el mismo que el código java compilado.

1

Si alguna vez usaste cualquier biblioteca de Java, simplemente tratan Scala como ellos. Obtenga el jar de Scala (el de la biblioteca), y empaquételo junto con su jar usando uno de los programas disponibles para eso, o distribúyalo juntos.

Cuestiones relacionadas