可以编译文件,但是在尝试执行时找不到主类

时间:2018-12-23 18:54:34

标签: java windows apache-poi command-prompt

我目前正在尝试使用Java处理xls文件,并且遇到以下问题。 我可以通过cmd编译代码:
javac -cp poi-4.0.1.jar;poi-ooxml-4.0.1.jar pdatexls.java

那里没有问题,但是尝试使用以下命令执行文件:
java -cp poi-4.0.1.jar;poi-ooxml-4.0.1.jar updatexls

给我:

  

错误:找不到或加载主类updatexls

我将.jar文件与updatexls.javaupdatexls.class放在一个文件夹中。我只在一些小程序中使用它,所以我不想使用任何类型的JDE。

似乎为我的.jar文件使用-cp设置类路径是一种问题吗?因为当我只尝试使用时:
java updatexls

Java肯定找到了该类,但是我当然会得到很多缺少库的错误。运行不需要任何库的Java文件也可以正常工作。 为了使java和javac正常工作,我所做的就是使用以下命令设置路径: set path="C:\Program Files\Java\jdk1.8.0_191\bin"

import java.io.*;    
import org.apache.poi.hssf.usermodel.HSSFWorkbook;    
import org.apache.poi.hssf.usermodel.HSSFSheet;    
import org.apache.poi.ss.usermodel.*;    
import java.util.Iterator;    

public class updatexls {      
    public static void main(String[] args) throws Exception{    

            FileInputStream input_document = new FileInputStream(new File("C:\\Users\\user\\Desktop\\test.xls"));

            HSSFWorkbook my_xls_workbook = new HSSFWorkbook(input_document);     

            HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(0);    

            Cell cell = null;     

            cell = my_worksheet.getRow(1).getCell(1);    

            cell.setCellValue(cell.getNumericCellValue() + 5);    

            input_document.close();    

            FileOutputStream output_file =new FileOutputStream(new File("C:\\Users\\user\\Desktop\\test.xls"));    

            my_xls_workbook.write(output_file);    

            output_file.close();                
    }    
}    

如何运行它?

2 个答案:

答案 0 :(得分:0)

我曾经遇到过同样的问题。 我所做的是:

  1. 搜索系统中的环境变量,方法如下:

enter image description here

  1. 单击按钮“环境变量”,例如:

enter image description here

  1. 然后在“系统环境”中,单击“新建”:

enter image description here

  1. 在名称字段中放入JAVA_HOME,在下一个字段中放入jdk的路径。在我的情况下是:

image of creation of the new variable

  1. 单击“确定”,然后尝试再次执行。

答案 1 :(得分:0)

java -cp poi-4.0.1.jar; poi-ooxml-4.0.1.jar;。 updatexls似乎可以解决问题