Wie bekomme ich die Scala-Version von Scala selbst?

91

Hier geht es nicht um Befehlszeilen-Compileroptionen. Wie erhalte ich programmgesteuert die Scala-Version im Code?

Wohin speichert das Eclipse Scala-Plugin v2 alternativ den Pfad zu scalac?

mlvljr
quelle
1
Die Scala-IDE für Eclipse speichert keinen Pfad zu scalac; Es ruft die Compiler-Klassen direkt von innen mit Eclipse JVM auf.
Jean-Philippe Pellet
2
@ Jean-Philippe Pellet Danke, übrigens, ich habe festgestellt, dass scala.sys.propsVerweise auf scheinbar Scala-Bibliotheken unter so etwas wie sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(mit jar's library.proertiesenthalten version.number=2.9.0.final). Aber da scala.sys.propsist da 2.9.0drin, da es nur so ziemlich ein Hinweis selbst ist :)
mlvljr
Verdammt, jemand, bitte mach das zu einem Wiki! :)
mlvljr
..heck, dies wird dieses Jahr 100 positive Stimmen bekommen, wahrscheinlich lasst uns weiter pushen, Leute (wer hätte gewusst, dass Scala so verworren ist, dass selbst Dinge, die so einfach sind, dich verwirren könnten).
mlvljr

Antworten:

123

Dies funktioniert ohne Zugriff auf 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 Butcher
quelle
3
Ich musste Scala hinzufügen, da zuerst Spark-Bibliotheken geladen wurden. Alsoscala.util.Properties.versionString
Francisco López-Sancho
47

Es gibt drei Möglichkeiten, um die Scala-Version zu erhalten:

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
quelle
2
Der erste ist anscheinend der schönste auf dieser Seite :)
mlvljr
1
Zu util.Properties.versionNumberStringIhrer Information gibt es erst seit Scala 2.10.x. Für Scala unter 2.10.x können Sie die util.Properties.releaseVersion.getOrElse("unknown version")Versionsnummer abrufen .
Jordan
15

Sie können die Scala-Version wie folgt erhalten:

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

Ich kenne die Besonderheiten des Plugins jedoch nicht.

HairyFotr
quelle
Ich denke, Sie können das scala.tools.nsc.Properties.versionStringüberall verwenden.
HairyFotr
Auf import scala.tools.nsc.Properties;meiner steht "Objektwerkzeuge sind kein Mitglied des Pakets ***. Scala" :(
mlvljr
7
scala.tools...ist nur verfügbar, wenn sich das scala-compiler.jarim Klassenpfad befindet.
michael.kebe
9

Wir können auch die Scala-Version installieren lassen

  1. Öffnen Sie die Eingabeaufforderung
  2. Typ Scala
  3. Sie erhalten folgende Ausgabe:

Willkommen bei Scala Version 2.10.3 (Java HotSpot (TM) 64-Bit-Server-VM, Java 1.8.0_6 0). Geben Sie Ausdrücke ein, um sie auswerten zu lassen. Typ: Hilfe für weitere Informationen.

Chinya
quelle