Java 代码是「;“部分崩溃”;尝试创建HSSF工作簿时
我将尽可能详细地描述这个问题,因为我需要帮助来解决这个问题,这是我项目的最后一步。我已经非常接近于完成一个桌面应用程序的开发,我已经为工业应用做了准备。该应用程序读取输入的.xls文件,并使用其中的数据填充空表单。在我的台式计算机上,这个程序是完美的,可以从桌面图标正常工作(作为可执行.jar文件的快捷方式运行)。下面是.jar中的主类Java 代码是「;“部分崩溃”;尝试创建HSSF工作簿时,java,jar,dependencies,apache-poi,executable,Java,Jar,Dependencies,Apache Poi,Executable,我将尽可能详细地描述这个问题,因为我需要帮助来解决这个问题,这是我项目的最后一步。我已经非常接近于完成一个桌面应用程序的开发,我已经为工业应用做了准备。该应用程序读取输入的.xls文件,并使用其中的数据填充空表单。在我的台式计算机上,这个程序是完美的,可以从桌面图标正常工作(作为可执行.jar文件的快捷方式运行)。下面是.jar中的主类 import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import javax
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,然后将其转换为HSSF工作簿。我让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)");
一旦我能弄清楚为什么在不同的计算机上运行它会导致问题,我就可以很容易地完成我的应用程序。我正在使用ApachePOI文档将附加我的文件路径。非常感谢您的帮助。我怀疑问题可能出在我的.jar结构上,但我也找不到任何问题。我已经附加了我的Jar结构。我非常乐意附上、讨论或包含所需问题的信息。非常渴望完成这件事 您收到了什么错误消息?有堆栈跟踪吗?@RomanPuchkovskiy我只是在使用可执行jar时才接收到错误。有没有办法从中接收堆栈跟踪?