使用jExcel时获取文件未找到异常

时间:2014-07-20 11:06:00

标签: java jexcelapi

我对java比较新。我正在编写一段可以与excel一起使用的代码。为此,我使用的是jExcel API。

现在我的代码是这样的。

import java.io.File;
import jxl.*;
class main{
 private File outputFile;
 private String  destinationFolder;

 public  main(){
    this.destinationFolder="test";
 }
 public void fileIteration(){
    try{
        for(File fileEntry :  new File(this.destinationFolder).listFiles()){

            if (fileEntry.isDirectory()){

            }
            else{
                System.out.println(fileEntry.getName());
                this.excelManipulate(fileEntry.getName());
            }
        }
    }

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


 public void excelManipulate(String inputFile){
 try{
     System.out.println(inputFile);
     Workbook workbook=Workbook.getWorkbook(new File("test/"+inputFile));
     Sheet sheet=workbook.getSheet(0);
     Cell a5=sheet.getCell("a1");
     System.out.println(a5.getContents());;
 }
 catch(Exception e){
    System.out.println(e.getMessage());
 }
 }

 public static void  main(String[] args){
    main ofh=new main();
    ofh.fileIteration();
    }
 }

我有几个excel坐在D:\ java \ Automation \ src \ test。

现在我正在使用windows的命令提示符来编译和运行代码。

我给出的编译命令是
javac -cp" D:\ java \ automation \ jexcelapi \ jxl.jar" main.java 然后我正在运行命令 java主要 虽然代码编译正确, 它在运行时出现以下错误。

D:\java\Automation\src>java main
 as307d.xls
 as307d.xls
 Exception in thread "main" java.lang.NoClassDefFoundError: jxl/Workbook
         at main.excelManipulate(main.java:37)
         at main.fileIteration(main.java:23)
         at main.main(main.java:50)
 Caused by: java.lang.ClassNotFoundException: jxl.Workbook
         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)
         ... 3 more

当我使用明确提到的jar运行它时,我收到以下错误。

 D:\java\Automation\src>java -jar D:\java\automation\jexcelapi\jxl.jar main
 java.io.FileNotFoundException: main (The system cannot find the file specified)
 java.io.FileNotFoundException: main (The system cannot find the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(Unknown Source)
        at jxl.Workbook.getWorkbook(Workbook.java:213)
        at jxl.Workbook.getWorkbook(Workbook.java:198)
        at jxl.demo.Demo.main(Demo.java:276)

我不知道为什么我没有得到至少打印的文件名。请让我知道我在哪里犯了错误,如果代码有任何问题。 非常感谢。

2 个答案:

答案 0 :(得分:0)

-jar选项用于运行可执行jar文件。请改用-classpath标志。

java -classpath D:\java\automation\jexcelapi\jxl.jar;. main

另请注意,Java类名称以大写字母开头,例如Main

答案 1 :(得分:0)

您必须将jxl.jar添加到类路径中。

调用java -cp D:\ java \ automation \ jexcelapi \ jxl.jar;。\ main