2014-05-19 50 views
0

我有一个Java文件 “RemoteXMLRead.java” 与线:错误:包org.apache.commons.io.filefilter不存在

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; 
} 

}

这工作正常,在Eclipse中。但是,运行同样的程序与

javac RemoteXMLRead.java导致以下错误:

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 

为什么用javac出现错误,但不熟悉Eclipse?

+1

Classpath probelm ...! 您需要将Commons-io jar添加到classpath – Giri

+0

我已经将此jar文件添加到类路径“set classpath =。; commons.io_2.0.1.jar”但没有使用相同的问题 –

+0

只需通过更新jar路径 'javac -classpath path \ to \ jar \ commonsio.jar RemoteXMLRead .java' – Giri

回答

0

这是因为你使用eclipse创建这个项目并尝试使用CMD运行。 当你使用eclipse时,它会自动为你添加的库生成路径和其他相关的东西。所以当你试图用CMD运行它时,它不能正确加载库。所以你必须手动创建项目才能使用CMD运行。

+0

我可以知道如何手动创建项目在CMD中运行 –

+0

试试这个http:// stackoverflow.com/questions/12291058/sublime-text-2-build-system-to-compile-run-java-in-a-new-terminal-command-prom – MacDaddy

+0

并且这也是http://www.ryanburch.me /升华文本-2-编译和运行Java的代码/ – MacDaddy