我正在上关于scala的课程,他们有任务要给我做。我下载了项目,其中有build.sbt。我尝试过在终端、Eclipse中使用sbt命令,但没有任何工作。终端机上的信息说:
[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会导致我的工作在他们的服务器上失败。如果我说了些蠢话,对不起,我对这件事很感兴趣。
发布于 2015-05-09 04:02:25
呵呵,这其实很容易,如果你知道该怎么做的话。只需在项目目录中创建.javaversion文件(或更高的位置,据我所知,它首先在dirs树中搜索),然后用oracle64-1.7.0.76或您想要的任何内容填充它。还有,有一个很好的插件可以让它变得更简单。。
发布于 2015-05-09 09:04:51
让sbt使用不同版本Java的另一种方法是在项目根目录下创建一个.sbtopts文件,其中包括:
-java-home
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home无论您的Java 7版本是什么。注意:必须在单独的线路上。
发布于 2016-05-08 14:57:43
您可能需要查看的另一个目录是项目目录。在这里,您可以找到指定sbt和Scala版本的build.properites文件。当它的旧版本不能很好地与新的Java安装一起工作时,您可以得到错误消息。
https://stackoverflow.com/questions/30135078
复制相似问题