【问题标题】:Sbt project loading error - "java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter"Sbt 项目加载错误 - “java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter”
【发布时间】:2018-06-06 22:36:36
【问题描述】:

在 OS XI 上的 IntelliJ Idea 中有一个正在 Idea 中编译的项目(Coursera 分配文件,尚未实现作业功能),但是当我尝试从项目根文件夹将其加载到终端中的 sbt 时,使用只是“sbt”,我得到了错误:

[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.sbt scalaVersion 是 2.11.7;在 Idea 项目结构窗口 Global Libraries 选项卡中,我有 scala-sdk-2.12.4,在 SDK 和项目选项卡中,我有 Java 1.8。

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

[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

随后尝试加载项目并导致错误。项目中的build.properties文件有sbt version 0.13.9,但是为什么sbt about info显示的是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”命令显示:

java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

【问题讨论】:

  • “java -version”显示什么?看起来这是 Java9 的一个已知问题:github.com/playframework/playframework/issues/7879
  • 编辑了我的帖子 - 它显示 9.0.1。
  • 所以它看起来像 Java 9 问题。您可以尝试我之前评论中提到的解决方案

标签: java scala intellij-idea sbt homebrew


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-15
    • 2023-01-23
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 2020-06-21
    • 2017-09-20
    相关资源
    最近更新 更多