首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将sbt设置为使用Java7进行编译?

将sbt设置为使用Java7进行编译?
EN

Stack Overflow用户
提问于 2011-10-09 13:46:50
回答 4查看 26.5K关注 0票数 42

在运行compile任务时,我得到了编译错误,因为源代码引用了java.nio.file包中仅在Java7中出现的新类。

我在build.sbt中有以下内容

代码语言:javascript
复制
javaHome := Some(file("/opt/jdk/jdk1.7.0"))

fork := true

在sbt中:

代码语言:javascript
复制
> show java-home
[info] Some(/opt/jdk/jdk1.7.0)

它在Eclipse中编译和运行得很好。如何将sbt设置为使用Java7进行编译?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-10 01:08:22

目前最可靠的(也许是唯一的)方法是使用JDK7文件夹中的java启动SBT。

修改您的sbt启动器脚本;或者使用允许您指定Java Home的this one (等等!)作为命令行选项。

代码语言:javascript
复制
~/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。

票数 50
EN

Stack Overflow用户

发布于 2013-02-25 20:15:19

如果您使用Linux或Mac,另一种可能是查看jenv,这是一个命令行Java管理器。

它允许您为每个项目选择要使用的JDK。

票数 4
EN

Stack Overflow用户

发布于 2015-05-18 17:27:19

我假设您想要更改默认情况下在JAVA_HOME中设置的任何内容,您可以在调用sbt时执行此操作:

代码语言:javascript
复制
JAVA_HOME=<path-to-jdk-home> sbt

这适用于我在OSX和sbt 0.13.8上的工作

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7701692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档