使用Scala使用poi-ooxml-schemas-3.9.jar编译错误

时间:2013-09-18 12:40:30

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

我正在尝试使用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编写的单词文档拆分相关的功能转换为Scala时发生错误。该错误实际上与jar文件库org.apache.poi相关联。

我试图记录,但我没有找到类似的情况。

有什么想法吗?

感谢

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

我已将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)

答案 2 :(得分:0)

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

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