Comment obtenir la version Scala à partir de Scala lui-même?

91

Il ne s'agit pas des options du compilateur en ligne de commande. Comment obtenir par programme la version Scala dans le code?

Sinon, où le plugin Eclipse Scala v2 stocke-t-il le chemin scalac?

mlvljr
la source
1
L'EDI Scala pour Eclipse ne stocke pas de chemin vers scalac; il appelle les classes du compilateur directement de l'intérieur avec Eclipse JVM.
Jean-Philippe Pellet
2
@ Merci Jean-Philippe Pellet, d' ailleurs, je l' ai trouvé que des scala.sys.propsréférences ce qui semble être les bibliothèques sous scala quelque chose comme sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(avec jar« s library.proertiescontenant version.number=2.9.0.final). Mais puisque scala.sys.propsc'est là-dedans puisque 2.9.0seulement c'est à peu près un indice en soi :)
mlvljr
Merde, quelqu'un, s'il vous plaît en faire un wiki! :)
mlvljr
..heck, cela va obtenir 100 votes positifs cette année, probablement, continuons à pousser, les gens (qui auraient su que Scala est si compliqué que même des choses aussi simples peuvent vous dérouter).
mlvljr

Réponses:

123

Cela fonctionnera sans accès à 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 Boucher
la source
3
J'ai dû ajouter scala car les bibliothèques Spark étaient chargées en premier. Soscala.util.Properties.versionString
Francisco López-Sancho
47

Il y a trois façons d'obtenir la version 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
la source
2
Le premier est le plus beau de tous sur cette page, apparemment :)
mlvljr
1
FYI util.Properties.versionNumberStringn'existe que depuis scala 2.10.x. Pour les scala inférieurs à 2.10.x, vous pouvez utiliser util.Properties.releaseVersion.getOrElse("unknown version")pour obtenir la chaîne du numéro de version.
jordom
15

Vous pouvez obtenir la version Scala comme ceci:

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

Je ne connais pas les spécificités du plugin, cependant.

PoiluFotr
la source
Je pense que vous pouvez utiliser le scala.tools.nsc.Properties.versionStringn'importe où.
HairyFotr
Sur le import scala.tools.nsc.Properties;mien dit "object tools n'est pas membre du package ***. Scala" :(
mlvljr
7
scala.tools...n'est disponible que si le scala-compiler.jarest dans le chemin de classe.
michael.kebe
9

Nous pouvons également installer la version Scala

  1. Ouvrir l'invite de commande
  2. tapez Scala
  3. Vous obtiendrez la sortie suivante:

Bienvenue dans Scala version 2.10.3 (VM serveur 64 bits Java HotSpot (TM), Java 1.8.0_6 0). Tapez des expressions pour les évaluer. Tapez: aide pour plus d'informations.

Chinya
la source