【问题标题】:Sbt compile error with poi-ooxml-schemas-3.9.jar using Scala使用 Scala 使用 poi-ooxml-schemas-3.9.jar 的 Sbt 编译错误
【发布时间】:2013-09-18 12:40:29
【问题描述】:

我正在尝试使用 SBT 编译我的项目,但我收到此错误并且无法弄清楚原因:

YoBre$ sbt compile
[info] Loading project definition from /opt/virtualenvs/venv1/scala/name/project
[info] Set current project to name (in build file:/opt/virtualenvs/venv1/scala/name/)
[info] Compiling 4 Scala sources and 5 Java sources to /opt/virtualenvs/venv1/scala/name/target/scala-2.10/classes...
[error] error while loading CTP, class file '/opt/virtualenvs/venv1/scala/name/lib_managed/jars/org.apache.poi/poi-ooxml-schemas/poi-ooxml-schemas-3.9.jar(org/openxmlformats/schemas/wordprocessingml/x2006/main/CTP.class)' is broken
[error] (class java.lang.NullPointerException/null)
[error] error while loading CTTbl, class file '/opt/virtualenvs/venv1/scala/name/lib_managed/jars/org.apache.poi/poi-ooxml-schemas/poi-ooxml-schemas-3.9.jar(org/openxmlformats/schemas/wordprocessingml/x2006/main/CTTbl.class)' is broken
[error] (class java.lang.NullPointerException/null)
[error] error while loading CTTc, class file '/opt/virtualenvs/venv1/scala/name/lib_managed/jars/org.apache.poi/poi-ooxml-schemas/poi-ooxml-schemas-3.9.jar(org/openxmlformats/schemas/wordprocessingml/x2006/main/CTTc.class)' is broken
[error] (class java.lang.NullPointerException/null)
[error] three errors found
[error] (compile:compile) Compilation failed
[error] Total time: 6 s, completed 18-set-2013 12.31.36

这个项目包含代码 Java 和 Scala。当我将一个与之前用 java 编写的 word 文档拆分相关的功能翻译成 Scala 时发生了错误。该错误实际上与 jar 文件库 org.apache.poi 相关。

我试图记录,但我没有找到类似的案例。

有什么想法吗?

谢谢

【问题讨论】:

    标签: java scala apache-poi sbt scala-2.10


    【解决方案1】:

    您是否尝试过将 jar 文件添加为外部依赖项?在你的 build.sbt 中:

    libraryDependencies += "org.apache.poi" % "poi-ooxml-schemas" % "3.9"
    

    【讨论】:

      【解决方案2】:

      我已将 POI 的版本更新为 3.10-beta2。 但是没有依赖"org.apache.poi"% "-OOXML schemas"% "1.0"

      添加后一切正常

      谢谢大家的回答!

        lazy val poiVersion = "3.10-beta2"
        lazy val libPoi ="org.apache.poi" % "poi" % poiVersion
        lazy val libPoiScratchpad ="org.apache.poi" % "poi-scratchpad" % poiVersion
        lazy val libPoiOOXML ="org.apache.poi" % "poi-ooxml" % poiVersion
        lazy val libPoiOOXMLSchema= "org.apache.poi" % "ooxml-schemas" % "1.0"
        lazy val libPoiComponents = Seq(libPoi, libPoiScratchpad, libPoiOOXML, libPoiOOXMLSchema)
      

      【讨论】:

        【解决方案3】:

        我找到了similar question,我怀疑你可能有同样的问题。 Scala 无法加载缺少注释的类,因此可能存在缺少的依赖项,而这对 Java 来说是可选的。

        通过在 sbt 中执行 show compile:dependency-classpath 检查您的依赖项列表,并确保您具有 Apache POI Project site 中列出的所有先决条件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-23
          • 1970-01-01
          • 2016-06-10
          • 1970-01-01
          • 2011-12-24
          相关资源
          最近更新 更多