问题 java.lang.NoClassDefFoundError:javax / xml / bind / DatatypeConverter


安装JDK9后,我在运行Scala项目时遇到此异常。将Scala升级到2.12.2也无法解决我的问题。


6235
2018-03-23 03:45


起源

你可能想要 转向使用 jaxb-api:2.3.0 理想地解决这个问题。 - nullpointer
可能重复 Intellij:基于SBT的Scala项目不是用Java 9构建的 - user8664964


答案:


java.xml.bind 在模块路径上运行代码时,默认情况下不解析模块。这意味着如果你依赖于JAXB,那么你需要运行 --add-modules java.xml.bind 或者在类路径(或模块路径)上部署JAXB。

更新:“与Java EE共享的模块默认情况下未解析“JDK 9迁移指南的一节提供了有关此主题的更多信息。


9
2018-03-23 09:16



要么 --add-modules java.se.ee - ZhekaKozlov
理论上这是解决方案,但是你如何要求scala / sbt在运行java时添加这个参数? - Aero Wang
你有什么想法 javaOptions in ThisBuild += "--add-modules=ALL-SYSTEM" - Epicurist
javaOptions in ThisBuild += "--add-modules=java.xml.bind" 会更好。注意等号!使用Java版“9.0.4”测试 - Epicurist
@AeroWang你找到了问题的答案吗? - Christopher Peter