我的目标是创建 Excel 2007 文档 (XLSX)在 Eclipse RCP 环境中(Excel 2003 很简单)。我不想将 POI jar 放在 /lib 文件夹中,相反,我想使用目标定义中的工作 POI OSGI 包。
到目前为止我所有的尝试都未能创建一个workingOSGI 捆绑包POI 3.8 http://poi.apache.org/download.html#POI-3.8beta4。到目前为止我做了什么:
-
我将所有相关的 JAR 文件与 Ant 合并zip task:
- poi-3.8-beta3-20110606.jar
- poi-ooxml-3.8-beta3-20110606.jar
- poi-ooxml-schemas-3.8-beta3-20110606.jar
- poi-scratchpad-3.8-beta3-20110606.jar
我跑了bnd工具与wrap范围:java -jar biz.aQute.bnd.jar wrap ./poi-3.8-beta3-20110606-merged.jar
-
我必须使用 bnd 将 jar 单独捆绑在 /ooxml-lib 文件夹中:
- xmlbeans-2.3.0.jar
- stax-api-1.0.1.jar
- dom4j-1.6.1.jar
这会导致 ClassNotFoundExceptionsorg.w3c.dom.Node
因为 xmlbeans-2.3.0.jar 从该包中导出四个类org.w3c.dom
。通常,JavaSE-RuntimeEnvironment 会导出这些。
我删除了org/w3c/dom
我从 xmlbeans-2.3.0.jar 中删除了 xmlbeans-2.3.0.jar 文件夹并重新捆绑了 jar,但我得到了其他 ClassNotFoundExceptions。
这就是我到目前为止所得到的。我认为与bnd wrap是不足够的。也许我必须创建一个绑定属性文件并具有明确的 Export-Package/Import-Package 语句,但是哪个有效?
那么,有人成功创建了一个可用的 POI 3.8 OSGI 包吗?
如果您不需要该特定版本,只需使用该页面列出了它的依赖项等(如果您使用 Maven/Ivy,您也可以下载或参考)
May be http://engroup.sourceforge.net/maven2/engroup/osgi/commons/poi-osgi/3.1/ http://engroup.sourceforge.net/maven2/engroup/osgi/commons/poi-osgi/3.1/ or http://ebr.springsource.com/repository/app/search?query=poi http://ebr.springsource.com/repository/app/search?query=poi可以提供一些灵感(在第一个链接中有一个 Maven POM,其中列出了捆绑插件部分中的 (bnd) 指令)。
你为什么要合并罐子?为什么不尝试单独包装每个呢?
要尝试的第二件事是使用现有的 OSGi'd jars, and
您还可以使用“org.osgi.framework.system.packages”配置 JRE(系统包)导出的内容 - 这样您就可以选择不导出org.w3c.dom
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)