将excel包含在.jar中



我需要知道将excel文件导出到.jar代码中的最佳方式。

我使用了GetDesktop打开文件语句,当我在EclipseIDE中运行它时,效果很好。但是,当我将代码导出到.JAR中时,excel表将不会打开,也不会执行任何操作。

public void actionPerformed(ActionEvent e) {
try { Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
desktop.open(new File("Resources/pics/chart 2.xls"));
} catch (IOException ioe) {
ioe.printStackTrace();
}}

我有一个jframe中的图片图像,我有两个按钮,在图片内部,供用户点击。根据他们点击的按钮,我需要打开特定的excel文件。仅出于查看目的,不涉及任何编辑。我尝试使用apachePOI,但excel文件根本没有打开,但当我使用上面的代码时,至少它会在eclipse中打开。我看到还有其他人也有同样的问题,但我的问题是我需要它来打开excel而不是编辑。感谢

您必须将其从jar中复制出来。您可以使用InputStream in = ClassYouAreIn.class.getResource("someFile.xls")获取输入流。这里有一个例子:

try (InputStream in = ClassYouAreIn.class.getResource("someFile.xls")) {
// copy it here, for example using:
Files.copy(in, Paths.get("somefile.xls"), StandardCopyOption.REPLACE_EXISTING);
}

注意:你的catch代码真的很糟糕:异常包含4个有趣的信息(类型、消息、堆栈竞争、因果链(,而你丢弃了4个信息中的3个,而你没有中止则导致了一连串的错误。除非您有ACTUAL策略来处理它(而记录/打印它并不是在处理它!(,否则您应该始终将它们向前抛出(在此方法上放置throws IOException(。

最新更新