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

时间:2016-08-05 06:34:07

标签: java eclipse excel terminal

我正在尝试使用示例程序来运行excel(xlsx)电子表格并将数据加载到二维数组中。我使用Google搜索并找到了一些好样本。 但是我面临的问题是,当我运行eclipse中的代码时,虽然它工作正常但它没有通过终端运行。

这里我附上了通过终端运行代码时遇到的错误的屏幕截图: -

enter image description here

我使用的代码是: -

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

我在本演示中使用的罐子如下: -

  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
  6. 任何帮助将不胜感激,

    感谢。

1 个答案:

答案 0 :(得分:1)

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

使用eclipse“Export runnable jar”工具创建“runnable jar”(项目上的鼠标右键 - > export-&gt; java-&gt; runnable jar文件 - &gt;选择包含main()的正确类要运行,请选择“将所需的jar文件复制到目标jar旁边的文件夹”。然后通过从控制台输入dest jar文件夹并调用来运行它:

java -jar yourDestJarName.jar