Scala SBT使用哪个版本的Java?

Scala SBT使用哪个版本的Java?,scala,sbt,Scala,Sbt,如何找出JDK SBT使用的是哪个版本 我的笔记本电脑同时安装了JDK1.6和JDK1.7,所以我只是想知道。其实很简单 找到SBT的命令行(cat`which SBT`),看看它是哪个Java 例如,我的SBT命令行以以下内容开头: /usr/bin/java -Xmx512M 而/usr/bin/java-version告诉java版本,在我的例子中是1.7。只要运行sbt控制台,就会得到如下结果: 欢迎使用Scala版本2.10.2(Java热点(TM)64位服务器虚拟机,Java 1.

如何找出JDK SBT使用的是哪个版本

我的笔记本电脑同时安装了JDK1.6和JDK1.7,所以我只是想知道。

其实很简单

找到SBT的命令行(
cat`which SBT`
),看看它是哪个Java

例如,我的SBT命令行以以下内容开头:

/usr/bin/java -Xmx512M

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

只要运行sbt控制台,就会得到如下结果:

欢迎使用Scala版本2.10.2(Java热点(TM)64位服务器虚拟机,Java 1.6.045)。 键入要计算的表达式。 键入:有关详细信息的帮助

它显示了正在使用的Java版本

干杯


JC

您可以在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

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

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/)
>

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


只需检查您的SBT启动程序脚本以及java home(和javaHome)是什么。对于我来说,SBT 0.13.7似乎不再显示这一点。它可能早于此版本被删除。下面使用eval的评论是有效的,这应该是可以接受的答案。同意。我还要指出,如果人们不知道在给定的上下文中使用的JVM的版本,那么他们可能不应该问这样的问题。问题在于使用哪个版本的JavaSBT,或者更确切地说,您希望它使用哪个版本。如果是后者,那么下面的第二个答案实际上更正确。使用
控制台
需要使项目可编译,而且可能不是因为使用了错误的jdk。啊。。它存储在哪里:)???sbt使用1.7Java,我想将这一奇迹转换为使用1.8Java。你不能真的说将使用
/usr/bin/java
,它可以通过多种方式被sbt启动覆盖。。。。这难道不具有误导性吗?
@echo off
setlocal
sbt "eval System.getProperty(\"java.version\")" "eval System.getProperty(\"java.home\")"
@echo on