Jak uzyskać wersję Scala z samej Scali?

91

Nie chodzi o opcje kompilatora wiersza polecenia. Jak programowo uzyskać wewnętrzną wersję kodu Scala?

Alternatywnie, gdzie wtyczka Eclipse Scala v2 przechowuje ścieżkę do scalac?

mlvljr
źródło
1
Scala IDE for Eclipse nie przechowuje ścieżki do scalac; wywołuje klasy kompilatora bezpośrednio z poziomu środowiska Eclipse JVM.
Jean-Philippe Pellet,
2
@ Jean-Philippe Pellet dzięki, btw, odkryłem, że scala.sys.propsreferencje, co wydaje się być biblioteki Scala pod coś takiego sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(z jar„s library.proertieszawierający version.number=2.9.0.final). Ale skoro scala.sys.propstam jest, bo 2.9.0tylko to prawie sama w sobie wskazówka :)
mlvljr
Cholera, niech ktoś, niech to będzie wiki! :)
mlvljr
... sprawdź, to w tym roku dostanie 100 pozytywnych głosów, prawdopodobnie naciskajmy dalej, ludzie (którzy wiedzieliby, że Scala jest tak zawiła, że ​​nawet tak proste rzeczy mogą was zdziwić).
mlvljr

Odpowiedzi:

123

Będzie działać bez dostępu do 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
źródło
3
Musiałem dodać scalę, ponieważ najpierw ładowano biblioteki Spark. A więcscala.util.Properties.versionString
Francisco López-Sancho
48

Istnieją trzy sposoby uzyskania wersji 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
źródło
2
Pierwsza jest najmilsza ze wszystkich na tej stronie, pozornie :)
mlvljr
1
Do Twojej wiadomości util.Properties.versionNumberStringistnieją tylko od wersji 2.10.x. W przypadku wersji poniżej 2.10.x można użyć util.Properties.releaseVersion.getOrElse("unknown version")do pobrania ciągu z numerem wersji.
jordom
15

Możesz pobrać wersję Scala w ten sposób:

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

Nie znam jednak szczegółów wtyczki.

HairyFotr
źródło
Myślę, że możesz używać scala.tools.nsc.Properties.versionStringwszędzie.
HairyFotr
U import scala.tools.nsc.Properties;mnie jest napisane "Object tools nie jest członkiem pakietu ***. Scala" :(
mlvljr
7
scala.tools...jest dostępna tylko wtedy, gdy scala-compiler.jarznajduje się w ścieżce klas.
michael.kebe
9

Możemy również zainstalować wersję Scala

  1. Otwórz wiersz polecenia
  2. wpisz Scala
  3. Otrzymasz następujące dane wyjściowe:

Witamy w Scali w wersji 2.10.3 (64-bitowa maszyna wirtualna serwera Java HotSpot (TM), Java 1.8.0_6 0). Wpisz wyrażenia, aby je ocenić. Wpisz: pomoc, aby uzyskać więcej informacji.

Chinya
źródło