通过terminal运行Java代码时出现问题

我试图让示例程序运行Excel(xlsx)电子表格和加载数据在2维数组。我已经谷歌search,并find了一些很好的样本。 但我面临的问题是,它不是通过terminal运行,虽然它运行良好,当我从eclipse运行的代码。

在这里,我正在通过terminal运行代码附加错误的屏幕截图: –

在这里输入图像说明

我使用的代码是:

import java.io.FileInputStream; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelDemo { public static void main(String[] args) { ExcelDemo xread2 = new ExcelDemo(); } public ExcelDemo() { getvalue_1(); } public static void getvalue_1() { XSSFRow row; XSSFCell cell; String[][] value = null; double[][] nums = null; try { FileInputStream inputStream = new FileInputStream( "/home/ravi/Desktop/abc/Firebase/sid.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); // get sheet number int sheetCn = workbook.getNumberOfSheets(); for (int cn = 0; cn < sheetCn; cn++) { // get 0th sheet data XSSFSheet sheet = workbook.getSheetAt(cn); // get number of rows from sheet int rows = sheet.getPhysicalNumberOfRows(); // get number of cell from row int cells = sheet.getRow(cn).getPhysicalNumberOfCells(); value = new String[rows][cells]; for (int r = 0; r < rows; r++) { row = sheet.getRow(r); // bring row if (row != null) { for (int c = 0; c < cells; c++) { cell = row.getCell(c); nums = new double[rows][cells]; if (cell != null) { switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_FORMULA: value[r][c] = cell.getCellFormula(); break; case XSSFCell.CELL_TYPE_NUMERIC: value[r][c] = "" + cell.getNumericCellValue(); break; case XSSFCell.CELL_TYPE_STRING: value[r][c] = "" + cell.getStringCellValue(); break; case XSSFCell.CELL_TYPE_BLANK: value[r][c] = "[BLANK]"; break; case XSSFCell.CELL_TYPE_ERROR: value[r][c] = "" + cell.getErrorCellValue(); break; default: } System.out.print(value[r][c]); } else { System.out.print("[null]\t"); } } // for(c) System.out.print("\n"); } } // for(r) } } catch (Exception e) { e.printStackTrace(); } } } 

我在这个演示中使用的jar子如下:

  1. dom4j.jar
  2. POI-3.9.jar
  3. POI-OOXML-3.5-FINAL.jar
  4. POI-OOXML-架构 – 3.7 beta1.jar
  5. XMLBeans的-2.6.0.jar

任何帮助将不胜感激,

谢谢。

首先javac是用于编译的,如果你尝试使用它,你需要指定classpath。 我认为这不是你想要的,你想运行它,而不是正确的编译? 从命令行运行它的最简单的方法是:

使用eclipse“Export runnable jar”工具(在project-> export-> java-> runnable jar文件 – >select包含要运行的main()的适当类, 请select选项来创build“runnable jar” “复制目标jar旁边的文件夹中所需的jar” ,然后通过从控制台inputdest jar文件夹并调用:

 java -jar yourDestJarName.jar