Come ottengo la versione Scala dall'interno di Scala stessa?


91

Non si tratta delle opzioni del compilatore della riga di comando. Come ottengo programmaticamente la versione Scala all'interno del codice?

In alternativa, dove memorizza il percorso il plugin Eclipse Scala v2 scalac?


1
L'IDE Scala per Eclipse non memorizza un percorso in scalac; richiama le classi del compilatore direttamente dall'interno con Eclipse JVM.
Jean-Philippe Pellet

2
@ Jean-Philippe Pellet Grazie, btw, ho scoperto che fa scala.sys.propsriferimento a quelle che sembrano essere librerie scala sotto qualcosa come sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(con jar's library.proertiescontenente version.number=2.9.0.final). Ma dal momento che scala.sys.propsè lì perché è 2.9.0solo un suggerimento in sé :)
mlvljr

Dannazione, qualcuno, per favore rendila una wiki! :)
mlvljr

..heck, questo sta per ottenere 100 voti positivi quest'anno, probabilmente, continuiamo a spingere, gente (chi avrebbe mai saputo che Scala è così contorta che anche le cose così semplici potrebbero confondervi).
mlvljr

Risposte:


123

Funzionerà senza accesso 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

3
Ho dovuto aggiungere scala poiché le librerie Spark venivano caricate per prime. Quindiscala.util.Properties.versionString
Francisco López-Sancho

47

Ci sono tre modi per ottenere la versione 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

2
Il primo è il più
carino

1
Cordiali saluti, util.Properties.versionNumberStringesiste solo dalla scala 2.10.x. Per scala inferiore a 2.10.x, è possibile utilizzare util.Properties.releaseVersion.getOrElse("unknown version")per ottenere la stringa del numero di versione.
jordom

15

Puoi ottenere la versione Scala in questo modo:

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

Tuttavia, non conosco le specifiche del plugin.


Penso che tu possa usare scala.tools.nsc.Properties.versionStringovunque.
HairyFotr

Sul import scala.tools.nsc.Properties;mio dice "object tools non è un membro del pacchetto ***. Scala" :(
mlvljr

7
scala.tools...è disponibile solo se scala-compiler.jarè nel classpath.
michael.kebe

9

Possiamo anche ottenere la versione Scala installata

  1. Apri il prompt dei comandi
  2. digitare Scala
  3. Otterrai il seguente output:

Benvenuti in Scala versione 2.10.3 (Java HotSpot (TM) Server VM a 64 bit, Java 1.8.0_6 0). Digita le espressioni per farle valutare. Digitare: aiuto per ulteriori informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.