2016-12-08 6 views
1

すべてのパッケージをインポートできますが、動作しません。私はjavaで新しいです。xmlの次のプログラムをコンパイルして変換すると、次のエラーが発生する

Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/commons/collections4/ListValuedMap at demo.ReadAndPrintXMLFile.main(ReadAndPrintXMLFile.java:101) Caused by:java.lang.ClassNotFoundException: org.apache.commons.collections4.

package demo; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Set; 

import org.apache.poi.ss.usermodel.Cell; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 
import org.w3c.dom.*; 

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

public class ReadAndPrintXMLFile { 
    private static XSSFWorkbook workbook; 

    public static void main(String argv[]) { 

     ArrayList<String> firstNames = new ArrayList<String>(); 
     ArrayList<String> lastNames = new ArrayList<String>(); 
     ArrayList<String> ages = new ArrayList<String>(); 

     try { 

      DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
      Document doc = docBuilder.parse(new File("D:/amit/book.xml")); 

      // normalize text representation 
      doc.getDocumentElement().normalize(); 
      System.out.println("Root element of the doc is :\" "+ doc.getDocumentElement().getNodeName() + "\""); 
      NodeList listOfPersons = doc.getElementsByTagName("person"); 
      int totalPersons = listOfPersons.getLength(); 
      System.out.println("Total no of people : " + totalPersons); 
      for (int s = 0; s < listOfPersons.getLength(); s++) 
      { 
       Node firstPersonNode = listOfPersons.item(s); 
       if (firstPersonNode.getNodeType() == Node.ELEMENT_NODE) 
       { 
        Element firstPersonElement = (Element) firstPersonNode; 
        NodeList firstNameList = firstPersonElement.getElementsByTagName("first"); 
        Element firstNameElement = (Element) firstNameList.item(0); 
        NodeList textFNList = firstNameElement.getChildNodes(); 
        System.out.println("First Name : "+ ((Node) textFNList.item(0)).getNodeValue().trim()); 
        firstNames.add(((Node) textFNList.item(0)).getNodeValue().trim()); 
        NodeList lastNameList = firstPersonElement.getElementsByTagName("last"); 
        Element lastNameElement = (Element) lastNameList.item(0); 
        NodeList textLNList = lastNameElement.getChildNodes(); 
        System.out.println("Last Name : "+ ((Node) textLNList.item(0)).getNodeValue().trim()); 
        lastNames.add(((Node) textLNList.item(0)).getNodeValue().trim()); 
        NodeList ageList = firstPersonElement.getElementsByTagName("age"); 
        Element ageElement = (Element) ageList.item(0); 
        NodeList textAgeList = ageElement.getChildNodes(); 
        System.out.println("Age : "+ ((Node) textAgeList.item(0)).getNodeValue().trim()); 
        ages.add(((Node) textAgeList.item(0)).getNodeValue().trim()); 
       }// end of if clause 

      }// end of for loop with s var 
      for(String firstName:firstNames) 
      { 
       System.out.println("firstName : "+firstName); 
      } 
      for(String lastName:lastNames) 
      { 
       System.out.println("lastName : "+lastName); 
      } 
      for(String age:ages) 
      { 
       System.out.println("age : "+age); 
      } 

     } 
     catch (SAXParseException err) 
     { 
      System.out.println("** Parsing error" + ", line "+ err.getLineNumber() + ", uri " + err.getSystemId()); 
      System.out.println(" " + err.getMessage()); 
     } 
     catch (SAXException e) 
     { 
      Exception x = e.getException(); 
      ((x == null) ? e : x).printStackTrace(); 
     } 
     catch (Throwable t) 
     { 
      t.printStackTrace(); 
     } 

     workbook = new XSSFWorkbook(); 
     XSSFSheet sheet = workbook.createSheet("Sample sheet"); 

     Map<String, Object[]> data = new HashMap<String, Object[]>(); 
     for(int i=0;i<firstNames.size();i++) 
     { 
      data.put(i+"",new Object[]{firstNames.get(i),lastNames.get(i),ages.get(i)}); 
     } 
     Set<String> keyset = data.keySet(); 
     int rownum = 0; 
     for (String key : keyset) { 
      Row row = sheet.createRow(rownum++); 
      Object[] objArr = data.get(key); 
      int cellnum = 0; 
      for (Object obj : objArr) { 
       Cell cell = row.createCell(cellnum++); 
       if (obj instanceof Date) 
        cell.setCellValue((Date) obj); 
       else if (obj instanceof Boolean) 
        cell.setCellValue((Boolean) obj); 
       else if (obj instanceof String) 
        cell.setCellValue((String) obj); 
       else if (obj instanceof Double) 
        cell.setCellValue((Double) obj); 
      } 
     } 

     try { 
      FileOutputStream out = new FileOutputStream(new File("D:/amit/book1.xlsx")); 
      workbook.write(out); 
      out.close(); 
      System.out.println("Excel written successfully.."); 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    }// end of main 
} 

答えて

-1
I got the output: 

package demo; 

//import java.awt.Label; 
import java.io.File; 
import java.util.ArrayList; 
//import java.util.Map; 
//import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.w3c.dom.*; 

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

import jxl.*; 
import jxl.write.*; 



public class ReadAndPrintXMLFile { 
    //private static XSSFWorkbook workbook; 

    //private static final int ArrayList = 0; 
    //private static final int String = 0; 
    //private static XSSFSheet sheet1; 
    //private static Map<String, Object[]> data; 
    public static void main(String argv[]) throws Exception{ 

     ArrayList<String> firstNames = new ArrayList<String>(); 
     ArrayList<String> lastNames = new ArrayList<String>(); 
     ArrayList<String> ages =  new ArrayList<String>(); 

     try { 

      DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
      Document doc = docBuilder.parse(new File("D:/amit/book.xml")); 

      // normalize text representation 
      doc.getDocumentElement().normalize(); 
      System.out.println("Root element of the doc is :\" "+ doc.getDocumentElement().getNodeName() + "\""); 
      NodeList listOfPersons = doc.getElementsByTagName("person"); 
      int totalPersons = listOfPersons.getLength(); 
      System.out.println("Total no of people : " + totalPersons); 
      for (int s = 0; s < listOfPersons.getLength(); s++) 
      { 
       Node firstPersonNode = listOfPersons.item(s); 
       if (firstPersonNode.getNodeType() == Node.ELEMENT_NODE) 
       { 
        Element firstPersonElement = (Element) firstPersonNode; 
        NodeList firstNameList = firstPersonElement.getElementsByTagName("first"); 
        Element firstNameElement = (Element) firstNameList.item(0); 
        NodeList textFNList = firstNameElement.getChildNodes(); 
        System.out.println("First Name : "+ ((Node) textFNList.item(0)).getNodeValue().trim()); 
        firstNames.add(((Node) textFNList.item(0)).getNodeValue().trim()); 
        NodeList lastNameList = firstPersonElement.getElementsByTagName("last"); 
        Element lastNameElement = (Element) lastNameList.item(0); 
        NodeList textLNList = lastNameElement.getChildNodes(); 
        System.out.println("Last Name : "+ ((Node) textLNList.item(0)).getNodeValue().trim()); 
        lastNames.add(((Node) textLNList.item(0)).getNodeValue().trim()); 
        NodeList ageList = firstPersonElement.getElementsByTagName("age"); 
        Element ageElement = (Element) ageList.item(0); 
        NodeList textAgeList = ageElement.getChildNodes(); 
        System.out.println("Age : "+ ((Node) textAgeList.item(0)).getNodeValue().trim()); 
        ages.add(((Node) textAgeList.item(0)).getNodeValue().trim()); 
       }// end of if clause 

      }// end of for loop with s var 
      for(String firstName:firstNames) 
      { 
       System.out.println("firstName : "+firstName); 
      } 
      for(String lastName:lastNames) 
      { 
       System.out.println("lastName : "+lastName); 
      } 
      for(String age:ages) 
      { 
       System.out.println("age : "+age); 
      } 

     } 
     catch (SAXParseException err) 
     { 
      System.out.println("** Parsing error" + ", line "+ err.getLineNumber() + ", uri " + err.getSystemId()); 
      System.out.println(" " + err.getMessage()); 
     } 
     catch (SAXException e) 
     { 
      Exception x = e.getException(); 
      ((x == null) ? e : x).printStackTrace(); 
     } 
     catch (Throwable t) 
     { 
      t.printStackTrace(); 
     } 
     //Entry point of excel 
     try{ 
     String filename = "D:\\file.xls"; 

       WritableWorkbook workbook = Workbook.createWorkbook(new File(filename)); 

       WritableSheet sheet = workbook.createSheet("Sheet1",0); 


        Label label = new Label(0,0,"firstName"); 
        sheet.addCell(label); 
        for(int i=0;i<firstNames.size();i++){ 
         Label label3 = new Label(0,i+1,firstNames.get(i)); 
         sheet.addCell(label3); 
        } 


        Label label1 = new Label(1,0,"lastNames"); 
        sheet.addCell(label1); 
        for(int j=0;j<lastNames.size();j++){ 

         Label label4 = new Label(1,j+1,lastNames.get(j)); 
         sheet.addCell(label4); 
        } 

        Label label2 = new Label(2,0,"age"); 
        sheet.addCell(label2); 
        for(int k=0;k<ages.size();k++){ 
         Label label5 = new Label(2,k+1,ages.get(k)); 
         sheet.addCell(label5); 

        } 
        System.out.println("Successfully Converted Into Excel Sheet"); 

        workbook.write(); 
        workbook.close(); 
     }catch (WriteException e){ 

     } 
    } 
} 
+0

そして何が問題でしたか? –

0

あなたはorg.apache.commons.collections4への依存性が欠けています。これはあなたの他の依存関係のためかもしれません(コレクションには依存関係がありますが、明らかに何らかのエラーがあります)。

パスにJARを追加しようとするか、ビルドツール(Maven、Gradle、Ivyなど)を使用する場合は、それを依存関係リストに追加できます。試してみて、この依存関係を追加します。https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1

+0

は、私はすでにそのjarファイルを追加し、パスを構築するが、それはまだ同じerror.Itがちょうど日食に私のプレーン出力を示すが、それは私がしたいExcelファイルを作成されていません示します。 –

+0

ここで見て、あなたが持っているものを解釈しようとする:http://stackoverflow.com/questions/34413/why-am-i-getting-a-noclassdeffounderror-in-java。基本的に、 'ClassNotFoundError'とは違う' NoClassDefFoundError'を取得していますが、 'ListValuedMap'は実行時には存在しませんが、コンパイル時には存在します。 –

+0

出力待ち全体を表示します。ドキュメントの –

関連する問題