如何在REPL中检索Scala的版本?

时间:2011-08-06 15:24:11

标签: scala

当尝试在线翻译或使用IRC机器人运行某些代码时,我总是想知道他们支持哪种版本的Scala。

有没有办法从解释器中检索Scala的版本?

4 个答案:

答案 0 :(得分:30)

使用scala.util.Properties.versionString

scala> scala.util.Properties.versionString
res0: String = version 2.11.5

答案 1 :(得分:6)

scala> scala.util.Properties.versionMsg
res: String = Scala library version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL

当然看起来像版本而不是语言版本,但我认为目前在实践中不会有真正的区别。

答案 2 :(得分:4)

如果您只需要版本号而没有"版本"关键字,您可以使用versionNumberString函数。

scala> scala.util.Properties.versionNumberString
res1: String = 2.12.3

答案 3 :(得分:2)

如果你想获得确切的 Scala 3 版本,你可以从 Manifest 文件中读取它
.../scala3-library_3-3.0.1.jar!/META-INF/MANIFEST.MF

import java.io.FileInputStream
import java.util.jar.JarInputStream

val scala3LibJar = classOf[CanEqual[_, _]].getProtectionDomain.getCodeSource.getLocation.toURI.getPath
val manifest = new JarInputStream(new FileInputStream(scala3LibJar)).getManifest
manifest.getMainAttributes.getValue("Implementation-Version")

Scastie 中的示例:

enter image description here