简体   繁体   中英

error: package org.apache.commons.io.filefilter does not exist

I have a Java file "RemoteXMLRead.java" with the lines:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;

import org.apache.commons.io.filefilter.WildcardFileFilter;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
import java.io.FileFilter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class RemoteXMLRead {

public static void main(String argv[]) {
    Connection conn = null;

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String url3 = "jdbc:sqlserver://127.0.0.1:1433;databaseName=TestPerfomenceTrack";
        conn = DriverManager.getConnection(url3, "reliantUser", "F4C78266-021e");

        Statement stmt = conn.createStatement();
        String sql = "";

        List<File> files = listf("C:\\jenkins\\jobs\\AdvBackOffice\\builds");

        File dir = new File(files.get(258), sql);
        FileFilter fileFilter2 = new WildcardFileFilter("*.xml");
        File[] files2 = dir.listFiles(fileFilter2);

        File fXmlFile = files2[1];
        System.out.println(fXmlFile);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);


        doc.getDocumentElement().normalize();
        NodeList nList = doc.getElementsByTagName("case");

        for (int temp = 0; temp < nList.getLength(); temp++) {
            Node nNode = nList.item(temp);
            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                Element eElement = (Element) nNode;

                sql="EXEC [spXMLDataForTestCasesTrack] " +
                        "'"+eElement.getElementsByTagName("duration").item(0).getTextContent()+"'," +
                        "'"+eElement.getElementsByTagName("className").item(0).getTextContent()+"'," +
                        "'"+eElement.getElementsByTagName("testName").item(0).getTextContent()+"'," +
                        "'"+eElement.getElementsByTagName("skipped").item(0).getTextContent()+"'," +
                        ""+eElement.getElementsByTagName("failedSince").item(0).getTextContent()+"";
                stmt.executeUpdate(sql);



                /*--EXEC [spXMLDataForTestCasesTrack] '123.00','test class name','test test name','test skipped',3
                  --SELECT * FROM [dbo].[ExecutionTimeTrack]*/

            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static List<File> listf(String directoryName) {
    File directory = new File(directoryName);

    List<File> resultList = new ArrayList<File>();

    // get all the files from a directory
    File[] fList = directory.listFiles();
    resultList.addAll(Arrays.asList(fList));
    for (File file : fList) {
        if (file.isFile()) {
            System.out.println(file.getAbsolutePath());
        } else if (file.isDirectory()) {
            resultList.addAll(listf(file.getAbsolutePath()));
        }
    }
    //System.out.println(fList);
    return resultList;
}

}

This works fine in Eclipse. However, running the same program with

javac RemoteXMLRead.java results in the following errors:

RemoteXMLRead.java:4: error: package org.apache.commons.io.filefilter does not exist
import org.apache.commons.io.filefilter.WildcardFileFilter;
                                   ^
RemoteXMLRead.java:35: error: cannot find symbol
                    FileFilter fileFilter2 = new WildcardFileFilter("*.xml");
                                                 ^
symbol:   class WildcardFileFilter
location: class RemoteXMLRead
2 errors

Why are errors appearing with javac but not Eclipse?

This is because you create this project using eclipse and trying to run using CMD. When you use the eclipse it's automatically generate path and other relative things for the library you added. So when you are trying to run it using CMD it's not properly load the libraries. So you have to create the project manually to run using CMD.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM