簡體   English   中英

通過終端運行Java代碼時出現問題

[英]Issue while running Java code through terminal

我正在嘗試制作示例程序來運行Excel(xlsx)電子表格並將數據加載到二維數組中。我已經用Google搜索並找到了一些好的示例。 但是我面臨的問題是,雖然我從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();
        }
    }
}

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

  1. dom4j.jar
  2. poi-3.9.jar
  3. poi-ooxml-3.5-FINAL.jar
  4. poi-ooxml-schemas-3.7-beta1.jar
  5. xmlbeans-2.6.0.jar

任何幫助將不勝感激,

謝謝。

首先, javac用於編譯,如果嘗試使用它,則需要指定類路徑。 我認為它不是您想要的,您想運行它而不編譯正確嗎? 從命令行運行它的最簡單方法是:

使用Eclipse“導出可運行的jar”工具創建“可運行的jar”(項目-> export-> java->可運行的jar文件->選擇包含要運行的main()的正確類的鼠標右鍵, 請選擇選項“將所需的jar拷貝到目標jar的文件夾中 。”然后通過從控制台進入dest jar文件夾並調用來運行它:

java -jar yourDestJarName.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM