Як отримати версію Scala з самої Scala?


91

Мова не йде про параметри компілятора командного рядка. Як мені програмно отримати версію Scala всередині коду?

Як варіант, де плагін Eclipse Scala v2 зберігає шлях scalac?


1
IDE Scala для Eclipse не зберігає шлях до scalac; він викликає класи компілятора безпосередньо зсередини за допомогою Eclipse JVM.
Jean-Philippe Pellet

2
@ Жан-Філіп Пелле Спасибі, до речі, я виявив , що scala.sys.propsпосилання на те , що , здається, бібліотеки SCALA під що - щось на зразок sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;jar«s , library.proertiesщо містять version.number=2.9.0.final). Але оскільки scala.sys.propsтам є, оскільки 2.9.0це лише сам по собі натяк :)
mlvljr

Блін, хтось, будь ласка, зробіть це вікі! :)
mlvljr

..перевіряйте, цього року це отримає 100 голосів, мабуть, давайте продовжувати наполягати, люди (хто б знав, що Scala настільки заплутана, що вас можуть спантеличити навіть такі прості речі).
mlvljr

Відповіді:


123

Це працюватиме без доступу до 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
Мені довелося додати масштаб, оскільки спочатку завантажувались бібліотеки іскр. Отжеscala.util.Properties.versionString
Франциско Лопес-Санчо

47

Існує три способи отримати версію 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
Перший, мабуть, найприємніший з усіх на цій сторінці :)
mlvljr

1
FYI util.Properties.versionNumberStringіснує лише з часу скали 2.10.x. Для шкали нижче 2.10.x ви можете використовувати, util.Properties.releaseVersion.getOrElse("unknown version")щоб отримати рядок номера версії.
jordom

15

Ви можете отримати версію Scala наступним чином:

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

Однак я не знаю особливостей плагіна.


Думаю, ти можеш використовувати scala.tools.nsc.Properties.versionStringде завгодно.
HairyFotr

На import scala.tools.nsc.Properties;моєму каже "об'єкт інструментів не є членом пакета ***. Scala" :(
mlvljr

7
scala.tools...доступний лише у випадку, якщо scala-compiler.jarфайл знаходиться у шляху до класу.
michael.kebe

9

Ми також можемо отримати встановлену версію Scala

  1. Відкрийте командний рядок
  2. типу Scala
  3. Ви отримаєте наступний результат:

Ласкаво просимо до версії Scala 2.10.3 (Java HotSpot (TM) 64-бітний сервер VM, Java 1.8.0_6 0). Введіть вирази, щоб оцінити їх. Тип: довідка для отримання додаткової інформації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.