代码是"部分崩溃"在尝试创建HSSFWorkbook时

时间:2017-06-02 19:50:45

标签: java jar dependencies apache-poi executable

我将尽可能详细地说明这一点,因为我需要帮助解决这个问题,这是我项目的最后一步。我非常接近我在工业中使用的桌面应用程序的完整开发。该应用程序读取输入的.xls文件,并使用其中的数据填充空表单。在我的台式计算机上,该程序是完美的,并且可以从桌面图标开始工作(作为可执行.jar文件的快捷方式运行)。这是.jar中的Main类。

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

import javax.swing.*;
import java.io.IOException;

public class Launcher {

    public static void main(String[] args) throws IOException, InvalidFormatException {
        ExcelReader reader = new ExcelReader();
        JOptionPane.showMessageDialog(null, "starting reader");
        reader.main(args);
        JOptionPane.showMessageDialog(null, "starting writer");
        ExcelWriter writer = new ExcelWriter(reader);
        writer.main(args);
    }
}

但是,当在另一台计算机上运行相同的.jar文件时,它会到达读取器中的一个点,即获取所选文件,将其转换为InputStream,然后将其转换为HSSFWorkbook。我有JOptionPanes在我的阅读器中显示代码的显示进度,它正在向上创建工作簿的行。

public static void main(String[] args) throws IOException, InvalidFormatException {
    final JFileChooser chooser = new JFileChooser();
    JFrame frame = new JFrame();
    int result = chooser.showOpenDialog(frame);

    if (result == JFileChooser.APPROVE_OPTION) {
        file = new File(chooser.getSelectedFile().getAbsolutePath());
        System.out.println("File Selected for Input: " + file.getAbsolutePath());
        JOptionPane.showMessageDialog(null, "File chosen : " + file.getAbsolutePath());
    }
    JOptionPane.showMessageDialog(null, "File has been selected");
    //Desktop desktop = Desktop.getDesktop();
    //desktop.open(file);
    try {
        JOptionPane.showMessageDialog(null, "Making inputstream");
        InputStream excelFile = new FileInputStream(file);
        JOptionPane.showMessageDialog(null, "making workbook with " + excelFile.toString());
        HSSFWorkbook workbook = new HSSFWorkbook(excelFile);
        JOptionPane.showMessageDialog(null, "making sheet");
        Sheet sheet = workbook.getSheetAt(0);
        JOptionPane.showMessageDialog(null, "sheet made 8)");

一旦我弄清楚为什么在另一台计算机上运行它会导致问题,我可以非常轻松地完成我的应用程序。我使用Apache POI文档将附加我的文件路径here。任何帮助是极大的赞赏。我怀疑问题可能与我的.jar结构有关,但我也找不到任何问题。我附上了我的Jar结构here。我非常乐意附上,讨论或包含所需问题的信息。非常渴望得到这个!

0 个答案:

没有答案