首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在项目中更新sbt?

如何在项目中更新sbt?
EN

Stack Overflow用户
提问于 2015-05-09 01:41:17
回答 4查看 1.3K关注 0票数 1

我正在上关于scala的课程,他们有任务要给我做。我下载了项目,其中有build.sbt。我尝试过在终端、Eclipse中使用sbt命令,但没有任何工作。终端机上的信息说:

代码语言:javascript
复制
[info] Compiling 8 Scala sources to /Users/(Path to project)/project/target/scala-2.9.2/sbt-0.12/classes...
[error] error while loading CharSequence, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/rt.jar(java/lang/CharSequence.class)' is broken
[error] (bad constant pool tag 18 at byte 10)
[error] error while loading Comparator, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/rt.jar(java/util/Comparator.class)' is broken
[error] (bad constant pool tag 18 at byte 20)
[error] error while loading AnnotatedElement, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)' is broken
[error] (bad constant pool tag 18 at byte 76)
[error] /Users/(Path to project)/project/ScalaTestRunner.scala:66: overloaded method value replace with alternatives:
[error]   (java.lang.CharSequence,java.lang.CharSequence)java.lang.String <and>
[error]   (Char,Char)java.lang.String
[error]  cannot be applied to (java.lang.String, java.lang.String)
[error]   private def runPathString(file: File) = file.getAbsolutePath().replace(" ", "\\ ")
[error]                                                                  ^
[error] four errors found
[error] (compile:compile) Compilation failed

正如我所理解的,使用sbt 0.12使用scala 2.9.2并不能正确地处理Java1.8。当然,降级java很有效,但这不是一个解决方案,因为我需要Java1.8。我已经安装了最新的sbt和scala,但是我认为这个项目有他自己的sbt,或者什么的。因此,我需要的是升级sbt或降低java级别,特别是针对这个项目。其次是更好的选择,因为我担心升级sbt会导致我的工作在他们的服务器上失败。如果我说了些蠢话,对不起,我对这件事很感兴趣。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-09 04:02:25

呵呵,这其实很容易,如果你知道该怎么做的话。只需在项目目录中创建.javaversion文件(或更高的位置,据我所知,它首先在dirs树中搜索),然后用oracle64-1.7.0.76或您想要的任何内容填充它。还有,有一个很好的插件可以让它变得更简单。

票数 0
EN

Stack Overflow用户

发布于 2015-05-09 09:04:51

sbt使用不同版本Java的另一种方法是在项目根目录下创建一个.sbtopts文件,其中包括:

代码语言:javascript
复制
-java-home
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

无论您的Java 7版本是什么。注意:必须在单独的线路上。

票数 1
EN

Stack Overflow用户

发布于 2016-05-08 14:57:43

您可能需要查看的另一个目录是项目目录。在这里,您可以找到指定sbt和Scala版本的build.properites文件。当它的旧版本不能很好地与新的Java安装一起工作时,您可以得到错误消息。

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

https://stackoverflow.com/questions/30135078

复制
相关文章

相似问题

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