使用apache POI库创建.DOC
文件时,我面临错误
“线程中的异常”主“java.lang.NoClassDefFoundError: org / apache / xmlbeans / XmlException at CreateDocument.main(CreateDocument.java:12)“
我将不胜感激。
答案 0 :(得分:1)
我在我的机器上运行了以下操作,没有任何问题(文档已创建):
public static void main(String...args) {
try {
XWPFDocument document = new XWPFDocument();
FileOutputStream fos = new FileOutputStream("/home/william/Documents/test.docx");
document.write(fos);
document.close();
System.out.println("Document created successfully");
} catch (Exception e) {
System.out.println("Document not created");
e.printStackTrace();
}
}
我使用gradle来管理我的依赖项。并非您在评论中提到的所有依赖项都是此示例所必需的。特别是您只需要以下内容:
dependencies {
compile group: 'org.apache.poi', name: 'poi', version: '3.17'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.17'
}
您使用的构建工具是什么? Maven的?摇篮?
对原始代码的一些评论:
1-您的try块没有跟踪异常的catch块。如果文档创建失败,请考虑捕获异常并向用户显示有意义的错误。在我的示例中,我刚刚打印了堆栈跟踪,但如果这是一个Web应用程序或gui,您可能希望向用户显示一条消息。
2-写入后不要关闭document
,这会导致资源泄漏。
您获得的异常是因为无法找到类XmlException
。这个类在xmlbeans-2.6.0.jar
(或者类似,这是撰写本文时的最新版本)。
尝试将依赖项添加到构建脚本
compile group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '2.6.0'