我对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)
我不知道为什么我没有得到至少打印的文件名。请让我知道我在哪里犯了错误,如果代码有任何问题。 非常感谢。
答案 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