在运行compile任务时,我得到了编译错误,因为源代码引用了java.nio.file包中仅在Java7中出现的新类。
我在build.sbt中有以下内容
javaHome := Some(file("/opt/jdk/jdk1.7.0"))
fork := true在sbt中:
> show java-home
[info] Some(/opt/jdk/jdk1.7.0)它在Eclipse中编译和运行得很好。如何将sbt设置为使用Java7进行编译?
发布于 2011-10-10 01:08:22
目前最可靠的(也许是唯一的)方法是使用JDK7文件夹中的java启动SBT。
修改您的sbt启动器脚本;或者使用允许您指定Java Home的this one (等等!)作为命令行选项。
~/code/scratch/20111009 sbt -java-home /Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Home
Starting sbt: invoke with -help for other options
[info] Loading global plugins from /Users/jason/.sbt/plugins
[info] Set current project to default-3e990a (in build file:/Users/jason/code/scratch/20111009/)
> console
[info] Compiling 1 Scala source to /Users/jason/code/scratch/20111009/target/scala-2.9.1/classes...
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.9.1.final (OpenJDK 64-Bit Server VM, Java 1.7.0-internal).
Type in expressions to have them evaluated.
Type :help for more information.
scala> java.util.Objects.equals(null, null)
res0: Boolean = true简单地设置javaHome := Some(file("/Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Home"))会更改用于编译和派生进程的Java版本,但不会更改类路径上的Java标准库的版本,也不会更改用于运行测试的版本,测试总是运行与SBT相同的JVM。
发布于 2013-02-25 20:15:19
如果您使用Linux或Mac,另一种可能是查看jenv,这是一个命令行Java管理器。
它允许您为每个项目选择要使用的JDK。
发布于 2015-05-18 17:27:19
我假设您想要更改默认情况下在JAVA_HOME中设置的任何内容,您可以在调用sbt时执行此操作:
JAVA_HOME=<path-to-jdk-home> sbt这适用于我在OSX和sbt 0.13.8上的工作
https://stackoverflow.com/questions/7701692
复制相似问题