在Intellij中运行sbt得到了错误的字节码版本

时间:2015-12-17 05:46:58

标签: java scala intellij-idea sbt

我正在使用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

2 个答案:

答案 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)

这是我所说的“SBT控制台”。我没有意识到它是SBT插件的一部分。这感觉就像插件中的一个错误。

enter image description here