title: apache POI java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile
body: <p>I try to make word document using Apache POI 4.0.0, but i get error </p>
  
  <blockquote>
    <blockquote>
      <p>Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError:
      org/apache/commons/compress/archivers/zip/ZipFile     at
      org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:365)
        at
      org.apache.poi.xwpf.usermodel.XWPFDocument.newPackage(XWPFDocument.java:158)
        at
      org.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)
        at
      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
      javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6533)    at
      javax.swing.JComponent.processMouseEvent(JComponent.java:3324)    at
      java.awt.Component.processEvent(Component.java:6298)  at
      java.awt.Container.processEvent(Container.java:2238)  at
      java.awt.Component.dispatchEventImpl(Component.java:4889)     at
      java.awt.Container.dispatchEventImpl(Container.java:2296)     at
      java.awt.Component.dispatchEvent(Component.java:4711)     at
      java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4897)
        at
      java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4475)
        at java.awt.Container.dispatchEventImpl(Container.java:2282)    at
      java.awt.Window.dispatchEventImpl(Window.java:2746)   at
      java.awt.Component.dispatchEvent(Component.java:4711)     at
      java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)    at
      java.awt.EventQueue.access$500(EventQueue.java:97)    at
      java.awt.EventQueue$3.run(EventQueue.java:709)    at
      java.awt.EventQueue$3.run(EventQueue.java:703)    at
      java.security.AccessController.doPrivileged(Native Method)    at
      java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at
      java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
        at java.awt.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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)   at
      java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at
      java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at
      java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at
      java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at
      java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
      Caused by: 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 more
      Blockquote</p>
    </blockquote>
  </blockquote>
  
  <p>i following tutorial from this site : <a href="https://www.tutorialspoint.com/apache_poi_word/apache_poi_word_installation.htm" rel="noreferrer">tutorials point</a> , and i had trying any solutions from blog, forum, etc. but nothing works for me.
  This is my code :  </p>
  
  <pre><code>/*
   * 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);
          }
      }
  
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/afLcz.png" rel="noreferrer"><img src="https://i.stack.imgur.com/afLcz.png" alt="enter image description here"></a></p>
  
  <p><a href="https://i.stack.imgur.com/trmKH.png" rel="noreferrer"><img src="https://i.stack.imgur.com/trmKH.png" alt="enter image description here"></a></p>
  
  <p><a href="https://i.stack.imgur.com/NFaam.png" rel="noreferrer"><img src="https://i.stack.imgur.com/NFaam.png" alt="enter image description here"></a></p>