我正在使用Intellij / sbt开展项目。我安装了Java 7/8。这是一个java / scala混合项目。该项目已配置(我认为)到java 7.我检查了Project SDK,Project Language Level,Platform SDK。
现在如果我使用Intellij运行sbt assembly
- >意见 - > Sbt控制台,.java文件符合java 8.如果我在一个单独的控制台(在Intellij之外)运行sbt程序集,.java文件被编译为java 7.我使用javap来检查字节码版本。
这几乎就像我错过了Intellij中的一个开关来为sbt设置字节码版本但是我找不到它。
我错过了什么?
更新: 我将以下内容添加到我的sbt.build中,但它没有帮助:
scalacOptions += "-target:jvm-1.7"
javacOptions ++= Seq("-source", "1.7")
另一个奇怪的事情是我的.scala文件被编译为major 50(java 6)。我不知道这是从哪里来的。不应该是java 7吗?
UPATE: 这似乎是sbt插件中的一个错误。 https://github.com/mpeltonen/sbt-idea/issues/296
答案 0 :(得分:0)
您可以在sbt文件中设置java版本,如下所示:
scalacOptions += "-target:jvm-1.8"
或
javacOptions ++= Seq("-source", "1.8")
以下是对此的sbt参考:http://www.scala-sbt.org/0.13/docs/Java-Sources.html
答案 1 :(得分:0)