首页 文章

apache POI java.lang.NoClassDefFoundError:org / apache / commons / compress / archivers / zip / ZipFile

提问于
浏览
2

我尝试使用Apache POI 4.0.0制作word文档,但是我收到错误

线程“AWT-EventQueue-0”中的异常java.lang.NoClassDefFoundError:org / apache / commons / compress / archivers / zip / ZipFile at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:365 )org.apache.poi.xwpf.usermodel.XWPFDocument.newPackage(XWPFDocument.java:158)atg.apache.poi.xwpf.usermodel.XWPFDocument . (XWPFDocument.java:149)at model.Model_dokumen.Cetak(Model_dokumen) .java:32)at view.Frame_surat.cetak_dan_simpanActionPerformed(Frame_surat.java:414)at view.Frame_surat.access $ 400(Frame_surat.java:23)at view.Frame_surat $ 5.actionPerformed(Frame_surat.java:211)at javax.swing .AbstractButton.fireActionPerformed(AbstractButton.java:2022)javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2348)at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)at javax.swing.DefaultButtonModel . setPressed(DefaultButtonModel.java:259)at java.awt.Com上的javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) java.awt.Container.processEvent上的java.awt.Component.processEvent(Component.java:6298)中的javax.swing.JComponent.processMouseEvent(JComponent.java:3324)中的ponent.processMouseEvent(Component.java:6533) .java:2238)java.awt.Component.dispatchEventImpl上的java.awt.Component.dispatchEventImpl(Component.java:4889)java.awt.Component.dispatchEvent(Component.java:4711)在java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4897)的java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534),位于java.awt的java.awt.LightweightDispatcher.dispatchEvent(Container.java:4475) . 位于java.awt.Eind上的java.awt.Window.dispatchEventImpl(Window.java:2746)中的Container.dispatchEventImpl(Container.java:2282)java.awt.EventQueue.dispatchEventImpl(EventQueue)中的java.awt.Component.dispatchEvent(Component.java:4711) .java:760)java.awt.EventQueue.access $ 500(EventQueue.java:97)java.awt.EventQueue $ 3.run(EventQueue.java:709)at java.awt.EventQueue $ 3.run(EventQueue.ja) va:703)java.security.ProtectionDomain java.security.AccessController.doPrivileged(Native Method)java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)$ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.set.EventQueue $ 4.run(EventQueue.java:733)at java.awt.EventQueue $ 4.run(EventQueue.java:731)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)java.awt.EventDispatchThread.pumpEventsForFilter的java.awt.EventQueue.dispatchEvent(EventQueue.java:730)上的$ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) EventDispatchThread.java:116)java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j) ava:93)at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)引起:java.lang.ClassNotFoundException:org.apache.commons.compress.archivers.zip.ZipFile at java.net.URLClassLoader.findClass( URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java) :357)... 43更多Blockquote

我遵循这个网站的教程:tutorials point,我尝试过任何来自博客,论坛等的解决方案,但没有什么对我有用 . 这是我的代码:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import view.Frame_surat;

/**
 *
 * @author nasution
 */
public class Model_dokumen {

    public void Cetak(Frame_surat fs) throws Exception {
        try {
            XWPFDocument document = new XWPFDocument();
//            XWPFDocument document = new XWPFDocument();//blank document
            //membuat paragraf

             //membuat dokumen surat keluar
            try (FileOutputStream outputStream = new FileOutputStream(new File("Surat_keluar.docx"))) {
                //membuat paragraf
                XWPFParagraph paragraf = document.createParagraph();
                XWPFRun run = paragraf.createRun();
                run.setText("ini adalah halaman dokumen yg baru saja dibuat menggunakan POI");
                document.write(outputStream);
            }
            JOptionPane.showMessageDialog(null, "Surat keluar berhasil dibuat");
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Model_dokumen.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Model_dokumen.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

1 回答

  • 2

    尝试搜索类名然后jar下载你可能会找到指定的jar文件 . “例如:XWPF jar文件下载 . ”并下载XWPF的类作为jar文件我以前遇到过这个问题,我解决了这个问题,但对我来说这是pdfBox . PS:尝试搜索“org.apache.poi.xwpf”的jar文件,您将获得更多结果 .

相关问题