SBT使用哪个版本的Java?

时间:2013-12-04 09:10:11

标签: scala sbt

如何找出JDK SBT使用的版本?

我的笔记本电脑安装了JDK 1.6和JDK 1.7,所以我只是想知道。

5 个答案:

答案 0 :(得分:44)

您可以在sbt提示符下使用eval和相应的系统属性:

> eval System.getProperty("java.version")
[info] ans: String = 1.7.0_45
> eval System.getProperty("java.home")
[info] ans: String = /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre

(其他答案也很好,这只是另一种方法。)

答案 1 :(得分:10)

只需运行sbt控制台,你就会得到类似的东西:

欢迎使用Scala版本2.10.2(Java HotSpot(TM)64位服务器VM,Java 1.6.0_45)。 输入表达式以对其进行评估。 键入:帮助以获取更多信息。

其中显示了正在使用的Java版本。

干杯

JC

答案 2 :(得分:5)

实际上很容易。

找到SBT的命令行(cat `which sbt`)并查看它是哪个Java。

例如,我的SBT命令行以:

开头
/usr/bin/java -Xmx512M

/usr/bin/java -version告诉Java版本,在我的例子中它是1.7。

答案 3 :(得分:3)

sbt -v是另一种方式:

# sbt -v
[process_args] java_version = '1.7.0_121'
# Executing command line:
java
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxPermSize=256m
-jar
/usr/share/sbt-launcher-packaging/bin/sbt-launch.jar

[info] Loading project definition from /root/.sbt/0.13/staging/a6d8e5030b69785a9763/build/project
[info] Set current project to xx (in build file:/build/)
>

答案 4 :(得分:0)

这是我创建的一个批处理文件方法,用于从命令行立即获取该信息(仅Windows,但是您可以在shell脚本中执行类似的操作):

@echo off
setlocal
sbt "eval System.getProperty(\"java.version\")" "eval System.getProperty(\"java.home\")"
@echo on