¿Cómo obtengo la versión de Scala desde el propio Scala?

91

No se trata de las opciones del compilador de la línea de comandos. ¿Cómo obtengo mediante programación la versión de Scala dentro del código?

Alternativamente, ¿dónde almacena la ruta el complemento Eclipse Scala v2 scalac?

mlvljr
fuente
1
Scala IDE para Eclipse no almacena una ruta a scalac; invoca las clases del compilador directamente desde dentro con Eclipse JVM.
Jean-Philippe Pellet
2
@ Jean-Philippe Pellet Gracias, por cierto, encontré que hace scala.sys.propsreferencia a lo que parecen ser bibliotecas scala en algo como sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(con jar's que library.proertiescontiene version.number=2.9.0.final). Pero ya que scala.sys.propsestá allí, ya que 2.9.0solo es una pista en sí misma :)
mlvljr
Maldita sea, alguien, ¡haz de esto una wiki! :)
mlvljr
... bueno, esto va a obtener 100 votos a favor este año, probablemente, sigamos presionando, amigos (que habrían sabido que Scala es tan complicado que incluso cosas tan simples pueden desconcertarlos).
mlvljr

Respuestas:

123

Esto funcionará sin acceso a scala-compiler.jar:

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.

scala> util.Properties.versionString
res0: java.lang.String = version 2.9.1.final
Paul carnicero
fuente
3
Tuve que agregar scala ya que las bibliotecas Spark se cargaron primero. Así quescala.util.Properties.versionString
Francisco López-Sancho
47

Hay tres formas de obtener la versión Scala:

scala> util.Properties.versionNumberString
res103: String = 2.11.4

scala> util.Properties.versionString
res104: String = version 2.11.4

scala> util.Properties.versionMsg
res105: String = Scala library version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL
Naga Vijayapuram
fuente
2
El primero es el mejor de todos en esta página, aparentemente :)
mlvljr
1
Para su información, util.Properties.versionNumberStringsolo existe desde scala 2.10.x. Para scala por debajo de 2.10.x, puede usar util.Properties.releaseVersion.getOrElse("unknown version")para obtener la cadena del número de versión.
jordom
15

Puede obtener la versión de Scala así:

scala> scala.tools.nsc.Properties.versionString
res7: java.lang.String = version 2.9.0.final

Sin embargo, no conozco los detalles del complemento.

PeludoFotr
fuente
Creo que puedes usar el en scala.tools.nsc.Properties.versionStringcualquier lugar.
HairyFotr
En el import scala.tools.nsc.Properties;mío dice "las herramientas de objetos no son miembros del paquete ***.
Scala
7
scala.tools...solo está disponible, si scala-compiler.jarestá en la ruta de clase.
michael.kebe
9

También podemos instalar la versión de Scala

  1. Abrir símbolo del sistema
  2. tipo Scala
  3. Obtendrá el siguiente resultado:

Bienvenido a Scala versión 2.10.3 (Java HotSpot (TM) 64-Bit Server VM, Java 1.8.0_6 0). Escriba expresiones para evaluarlas. Escriba: ayuda para obtener más información.

Chinya
fuente