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
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:
- 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.
- 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).
- Se puede encontrar en su distribución Scala: lib/scala-library.jar
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.
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.
- 1. ¿Se puede compilar un código groovy para ejecutar en JRE?
- 2. ¿Scala funciona bien en las JVM propietarias?
- 3. ¿Cómo puedo compilar mi script Perl para que se pueda ejecutar en sistemas sin Perl instalado?
- 4. ¿Cómo se ejecuta scala bytecode en el jvm?
- 5. ¿Puede Scala sobrevivir sin respaldo corporativo?
- 6. ¿Puede Java ejecutar un código scala compilado?
- 7. ¿Cómo compilar y ejecutar código scala rápidamente en vim?
- 8. erlang vs jvm (scala) rendimiento de recursión
- 9. ¿Se puede combinar un rango en Scala?
- 10. ¿Cómo se puede ejecutar un programa compilado en el lenguaje de máquina en diferentes máquinas?
- 11. Run sqlcmd sin tener instalado SQL Server
- 12. Para bucle en scala sin secuencia?
- 13. corriendo msbuild sin tener instalado VS
- 14. ¿Puede averiguar qué compilador se utilizó para compilar un programa?
- 15. ¿Qué compromisos tiene Scala para ejecutarse en JVM?
- 16. ¿Se puede ejecutar un programa python en una computadora sin Python? ¿Qué hay de C/C++?
- 17. Problema de Scala: cómo ejecutar un programa que está en un paquete?
- 18. ¿Cuántas JVM podemos tener en una sola máquina?
- 19. Trading de alta frecuencia en la JVM con Scala/Akka
- 20. Compilar y ejecutar un programa en C en Emacs
- 21. Compilar e instalar sin ejecutar en Xcode
- 22. No se puede usar la clase Scala en Java
- 23. Cómo compilar y ejecutar un programa C/C++ en el sistema Android
- 24. No se puede llamar a un constructor sobrecargado en Scala
- 25. Scala AST en Scala
- 26. ¿Puedo tener un valor negativo como expresión constante en Scala?
- 27. ¿Se puede usar scala splat para cualquier cosa que no sea varargs?
- 28. semántica recursivas sobrecarga en el Scala REPL - idiomas JVM
- 29. usando FUSLOGVW.EXE en una máquina sin Visual Studio instalado
- 30. ¿Puedo compilar un proyecto de Scala con código mixto de Java y scala con dependencias en ambos sentidos en Maven?