如何从Scala本身获取Scala版本?


91

这与命令行编译器选项无关。如何以编程方式在代码内部获取Scala版本?

或者,Eclipse Scala插件v2在何处存储路径scalac


1
用于Eclipse的Scala IDE不会存储到的路径scalac; 它直接从Eclipse JVM内部调用编译器类。
让-菲利普·佩莱

2
@让-菲利普·佩莱感谢,顺便说一句,我发现,scala.sys.props似乎什么引用是斯卡拉库下像sun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(用jarlibrary.proertiesversion.number=2.9.0.final)。但是因为scala.sys.props它在那里,因为2.9.0它本身几乎只是一个提示:)
mlvljr

该死的,有人,请把它做成维基!:)
mlvljr 2014年

..heck,今年将要获得100票赞成票,也许,让我们继续努力吧,伙计们(谁知道Scala是如此令人费解,甚至简单的事情也可能会困扰您)。
mlvljr

Answers:


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,因为首先要加载spark库。所以scala.util.Properties.versionString
FranciscoLópez-Sancho'17

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
仅供参考util.Properties.versionNumberString,自scala 2.10.x起存在。对于2.10.x以下的scala,您可以使用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 2011年

关于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™64位服务器VM,Java 1.8.0_6 0)。输入表达式以对其求值。输入:help以获得更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.