Sbt项目加载错误 - “java.lang.NoClassDefFoundError:javax / xml / bind / DatatypeConverter”

时间:2017-12-25 23:03:31

标签: java scala intellij-idea sbt homebrew

在IntelliJ Idea OS OS上有一个项目(一个Coursera赋值文件,还没有实现功能函数),它在Idea中进行编译,但是当我尝试从项目根文件夹中的sbt中加载它时,使用只是“sbt”,我收到错误:

Object(e)

build.sbt scalaVersion是2.11.7;在Idea项目结构窗口的Global Libraries选项卡中,我有scala-sdk-2.12.4,在SDKs和Project选项卡中,我有Java 1.8。

Brew告诉我我有1.0.4,但当我从项目文件夹运行sbt --about时,它显示我:

[info] Loading project definition from <omitted>/calculator/project  
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter  
   at sbt.inc.TextAnalysisFormat$ObjectStringifier$$anonfun$34.apply(TextAnalysisFormat.scala:336)
<trace omitted>  
[error] (compile:readAnalysis) java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter  
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

然后尝试加载项目和产生的错误。项目中的build.properties文件有sbt版本0.13.9,但为什么关于info的sbt显示Scala 2.10.5?

我的系统上安装了Java 8和Java 9(通过brew cask) - sbt是否可能出于某种原因使用Java 9而不是Java 8,如果是这样,我将如何检查并修复它? Java 9的安装命令是“brew cask install java”,而对于Java 8,它是“brew cask install java8”。

编辑:“java -version”命令显示:

[info] This is sbt 0.13.9  
[info] No project is currently loaded  
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.5

1 个答案:

答案 0 :(得分:1)

Scala和Java 9存在一些交互问题。我卸载了Java 9,因为我现在不需要它而不是Java 8,之后项目加载没有错误。