Dan*_*ral 31
用途scala.util.Properties.versionString
:
scala> scala.util.Properties.versionString
res0: String = version 2.11.5
Run Code Online (Sandbox Code Playgroud)
scala> scala.util.Properties.versionMsg
res: String = Scala library version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL
Run Code Online (Sandbox Code Playgroud)
看起来当然像图书馆版本而不是语言版本,但我认为目前在实践中不会有真正的区别.
如果你想获得准确的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")
Run Code Online (Sandbox Code Playgroud)
Scastie 中的示例:
如果您只需要版本号而不需要“version”关键字,则可以使用versionNumberString
函数。
scala> scala.util.Properties.versionNumberString
res1: String = 2.12.3
Run Code Online (Sandbox Code Playgroud)