1

我正在尝试使用加载一个xml文件,scala-xml_2.12-1.0.6.jar但它NullPointerEexception在加载时给了我

以下是我加载 xml 的代码行

import scala.xml.XML
val xml = XML.loadFile("sample.xml")

我已经反编译了这个 jar,并且该 jar 中存在方法,但由于某些原因,它无法在代码中找到它。

我有Scala 2.13.1我的系统,但对于我正在使用的这个项目 scala 2.12.1,它在 mu 中提到built.sbt

scalaVersion := "2.12.1"

built.sbt对于这个 xml 包,我有以下依赖项

libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "1.0.6"

如果我将相同的代码复制并粘贴到Scala交互式 shell( scala 2.13.1) 中,我会收到以下错误

import scala.xml.XML
                ^
   error: object xml is not a member of package scala
   did you mean Nil?

谁能确定我做错了什么?

提前致谢。

4

1 回答 1

1

我不确定您是如何加载 Scala REPL 的,但正如“如何将第三方库与 Scala REPL 一起使用?”中所述。,您应该使用 . 从 SBT 启动 REPL sbt console。您的.sbt文件也需要在范围内。

Scala REPL 独立地不处理.sbt文件。它们是两种不同的工具。

或者,您也可以安装支持Magic Imports的 Ammonite-REPL。您将能够使用.import $ivy

Scala 2.12 附带,scala-xml只要您运行 REPLsbt console而不是已经是 @ Scala 2.13 的本机 Scala REPL,您就可以删除该依赖项。否则,您也可以为您的 SBT 项目切换到 Scala 2.13。

于 2021-04-02T14:49:02.200 回答