2014-12-17 3 views
-1

Я пытаюсь сгенерировать слово doc, используя apache POI. Но когда я пытаюсь запустить этот код, я получаю ошибку ClassDefNotFound. Вот мой код до того, что я пробовал.Как решить ClassNOtFound Ошибка при использовании apache POI

public class SimpleDocument { 

public static void main(String[] args) throws Exception { 
    XWPFDocument doc = new XWPFDocument(); 

    XWPFParagraph p1 = doc.createParagraph(); 
    p1.setAlignment(ParagraphAlignment.CENTER); 
    p1.setBorderBottom(Borders.DOUBLE); 
    p1.setBorderTop(Borders.DOUBLE); 

    p1.setBorderRight(Borders.DOUBLE); 
    p1.setBorderLeft(Borders.DOUBLE); 
    p1.setBorderBetween(Borders.SINGLE); 

    p1.setVerticalAlignment(TextAlignment.TOP); 

    XWPFRun r1 = p1.createRun(); 
    r1.setBold(true); 
    r1.setText("The quick brown fox"); 
    r1.setBold(true); 
    r1.setFontFamily("Courier"); 
    r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); 
    r1.setTextPosition(100); 

    XWPFParagraph p2 = doc.createParagraph(); 
    p2.setAlignment(ParagraphAlignment.RIGHT); 

    //BORDERS 
    p2.setBorderBottom(Borders.DOUBLE); 
    p2.setBorderTop(Borders.DOUBLE); 
    p2.setBorderRight(Borders.DOUBLE); 
    p2.setBorderLeft(Borders.DOUBLE); 
    p2.setBorderBetween(Borders.SINGLE); 

    XWPFRun r2 = p2.createRun(); 
    r2.setText("jumped over the lazy dog"); 
    r2.setStrike(true); 
    r2.setFontSize(20); 

    XWPFRun r3 = p2.createRun(); 
    r3.setText("and went away"); 
    r3.setStrike(true); 
    r3.setFontSize(20); 
    r3.setSubscript(VerticalAlign.SUPERSCRIPT); 


    XWPFParagraph p3 = doc.createParagraph(); 
    p3.setWordWrap(true); 
    p3.setPageBreak(true); 

    //p3.setAlignment(ParagraphAlignment.DISTRIBUTE); 
    p3.setAlignment(ParagraphAlignment.BOTH); 
    p3.setSpacingLineRule(LineSpacingRule.EXACT); 

    p3.setIndentationFirstLine(600); 


    XWPFRun r4 = p3.createRun(); 
    r4.setTextPosition(20); 
    r4.setText("To be, or not to be: that is the question: " 
      + "Whether 'tis nobler in the mind to suffer " 
      + "The slings and arrows of outrageous fortune, " 
      + "Or to take arms against a sea of troubles, " 
      + "And by opposing end them? To die: to sleep; "); 
    r4.addBreak(BreakType.PAGE); 
    r4.setText("No more; and by a sleep to say we end " 
      + "The heart-ache and the thousand natural shocks " 
      + "That flesh is heir to, 'tis a consummation " 
      + "Devoutly to be wish'd. To die, to sleep; " 
      + "To sleep: perchance to dream: ay, there's the rub; " 
      + "......."); 
    r4.setItalic(true); 
//This would imply that this break shall be treated as a simple line break, and break the line after that word: 

    XWPFRun r5 = p3.createRun(); 
    r5.setTextPosition(-10); 
    r5.setText("For in that sleep of death what dreams may come"); 
    r5.addCarriageReturn(); 
    r5.setText("When we have shuffled off this mortal coil," 
      + "Must give us pause: there's the respect" 
      + "That makes calamity of so long life;"); 
    r5.addBreak(); 
    r5.setText("For who would bear the whips and scorns of time," 
      + "The oppressor's wrong, the proud man's contumely,"); 

    r5.addBreak(BreakClear.ALL); 
    r5.setText("The pangs of despised love, the law's delay," 
      + "The insolence of office and the spurns" + "......."); 

    FileOutputStream out = new FileOutputStream("simple.docx"); 
    doc.write(out); 
    out.close(); 

    } 
} 

А вот исключение, что я получаю при попытке запустить этот код ..

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException 
at com.jeet.poi.SimpleDocument.main(SimpleDocument.java:21) 
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 1 more 
+0

Почему вы не пытаетесь ответить на мой вопрос? это действительно работает. –

ответ

0

Прежде всего списка баночки вы размещаете в путь класса.

Я думаю, вам нужно следующее баночку в вас

пути к классам
xmlbeans-xmlpublic-2.4.0.jar 
0

Вы должны добавить XML beans dependency в свой класс путь.

Библиотека обычно называется XMLBeans-x.x.x.jar

+0

Я добавил xmlbeans-2.6.0.jar в мой путь к классу, но все равно получаю ту же ошибку – lucifer

+0

, пожалуйста, добавьте еще 2 баночки в качестве моего ответа. –

0

Вам нужно добавить OOXML-Lib в вашем пути к классам.

1) dom4j-1.6.1.jar 
2) stax-api-1.0.1.jar 
3) xmlbeans-2.6.0.jar 

Я бы порекомендовал вам выбрать подходящую OOXML Пб версию для вашего apche-пои, которые используются в проекте.

Смежные вопросы