Как мне получить версию Scala из самой Scala?

Это не касается параметров компилятора командной строки. Как программно получить версию Scala внутри кода?

В качестве альтернативы, где подключаемый модуль Eclipse Scala v2 хранит путь к scalac?


person mlvljr    schedule 25.05.2011    source источник
comment
Scala IDE для Eclipse не хранит путь к scalac; он вызывает классы компилятора непосредственно изнутри с помощью Eclipse JVM.   -  person Jean-Philippe Pellet    schedule 25.05.2011
comment
@ Jean-Philippe Pellet Спасибо, кстати, я обнаружил, что scala.sys.props ссылается на библиотеки scala под чем-то вроде sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;library.proerties jar, содержащим version.number=2.9.0.final). Но так как scala.sys.props там только с 2.9.0, то это сам по себе намек :)   -  person mlvljr    schedule 25.05.2011
comment
Блин, кто-нибудь, пожалуйста, сделайте это вики! :)   -  person mlvljr    schedule 13.05.2014
comment
..черт возьми, в этом году это наберет 100 голосов, возможно, давайте продолжим, ребята (кто бы знал, что Scala настолько запутан, что даже такие простые вещи могут вас озадачить).   -  person mlvljr    schedule 28.05.2020


Ответы (4)


Это будет работать без доступа к 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
person Paul Butcher    schedule 20.10.2011
comment
Мне пришлось добавить scala, так как библиотеки spark были загружены первыми. Таким образом, 1_ - person Francisco López-Sancho; 24.02.2017

Есть три способа получить версию 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
person Naga Vijayapuram    schedule 23.11.2014
comment
Кажется, первый из них самый красивый на этой странице :) - person mlvljr; 23.11.2014
comment
FYI util.Properties.versionNumberString существует только с scala 2.10.x. Для scala ниже 2.10.x вы можете использовать util.Properties.releaseVersion.getOrElse("unknown version") для получения строки номера версии. - person jordom; 28.02.2015

Вы можете получить версию Scala следующим образом:

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

Я не знаю специфики плагина, хотя.

person HairyFotr    schedule 25.05.2011
comment
Я думаю, что вы можете использовать scala.tools.nsc.Properties.versionString где угодно. - person HairyFotr; 25.05.2011
comment
На моем import scala.tools.nsc.Properties; написано, что инструменты объекта не входят в пакет ***.scala :( - person mlvljr; 25.05.2011
comment
scala.tools... доступен только в том случае, если scala-compiler.jar находится в пути к классам. - person michael.kebe; 25.05.2011

Мы также можем получить установленную версию Scala

  1. Открыть командную строку
  2. тип Скала
  3. Вы получите следующий вывод:

Добро пожаловать в Scala версии 2.10.3 (Java HotSpot™, 64-разрядная виртуальная машина сервера, Java 1.8.0_6 0). Введите выражения для их оценки. Введите :help для получения дополнительной информации.

person Chinya    schedule 16.09.2015