【问题标题】:java.lang.reflect.InvocationTargetException in Linux Environment but working with WindowsLinux 环境中的 java.lang.reflect.InvocationTargetException 但适用于 Windows
【发布时间】:2020-08-15 09:50:19
【问题描述】:

我正在使用 Windows 系统执行下面提到的 java 代码。它工作正常,没有任何错误。但我尝试在 Linux 环境中执行此代码时出现“java.lang.reflect.InvocationTargetException”错误。

        String status = "Initialized!";
    try
    {
        String rootPath = "C:/FolderA.1/FolderA1.1.1/FolderA1.1.1A/"; /**Windows**/
        String rootPath = "/opt/FolderA/FolderA.1/FolderA1.1.1/FolderA1.1.1A/"; /**Linux**/
        
        String reportFileLocation = rootPath + File.separator + fileName;
        FileInputStream excelFile = new FileInputStream(new File(reportFileLocation));
        XSSFWorkbook workbook = new XSSFWorkbook((InputStream)excelFile);
        {
            XSSFSheet reportSheet = workbook.getSheet("Report");
            XSSFSheet formatSheet = workbook.getSheet("Format");
            if(reportSheet == null)
            {
                workbook.close();
                throw new Exception("Sheet name \"Report\" is not available! Please add \"Report\" sheet!");
            }
            if(formatSheet == null)
            {
                workbook.close();
                throw new Exception("Sheet name \"Format\" is not available! Please add \"Format\" sheet!");
            }
            /** Delete other sheets **/
            int sheetsCount = workbook.getNumberOfSheets();
            int s = 0;
            for( ;s < sheetsCount; s++)
            {
                String sheetName = workbook.getSheetName(s);
                if(sheetName.equals("Report") || sheetName.equals("Format"))
                {
                    
                }
                else
                {
                    workbook.removeSheetAt(s);
                    sheetsCount--;
                    s--;
                }
            }
        }
        FileOutputStream outputStream = new FileOutputStream(reportFileLocation);
        workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();
        workbook.write((OutputStream)outputStream);
        workbook.close();
        status = "OK";
    }
    catch(Exception err)
    {
        status = err.getMessage();
    }

如何解决这个问题?

【问题讨论】:

  • 它的完整异常和堆栈跟踪是什么?

标签: excel exception apache-poi exception-notification


【解决方案1】:

感谢@Gagravarr 的回复。

得到了带有以下代码的确切错误消息并已解决。

try
{
  //my logic
}
catch(Exception err)
{
    status = err.getMessage();
    status = status + err.getCause();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2016-09-03
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多