Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在.jar中包含excel_Java_Excel - Fatal编程技术网

Java 在.jar中包含excel

Java 在.jar中包含excel,java,excel,Java,Excel,我需要知道将excel文件导出到.jar代码中的最佳方法是什么 我使用了GetDesktop open file语句,当我在EclipseIDE中运行该语句时,效果很好。但是,当我将代码导出到.JAR中时,excel工作表将不会打开,它不会做任何事情 public void actionPerformed(ActionEvent e) { try { Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop

我需要知道将excel文件导出到.jar代码中的最佳方法是什么

我使用了GetDesktop open file语句,当我在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而不是编辑。
谢谢

你必须把它从罐子里复制出来。您可以使用
inputstream in=ClassYouAreIn.class.getResource(“someFile.xls”)
获取inputstream。以下是一个例子:

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个有趣的信息位(类型、消息、stacktrace、因果链),您正在丢弃其中的3个,并且由于未中止而导致一连串错误。除非您有一个实际的策略来处理它(并且记录/打印它不是在处理它!),否则您应该始终将它们向前抛出(在这个方法上放置
抛出IOException
)。

您需要将excel排列从Jar复制/提取到本地驱动器-记住,Jar文件只是一个zip文件,我正在努力使我的程序尽可能完整,这样,如果我在另一台PC上运行它,我就不必将excel文件复制到本地驱动器上。我看到其他一些程序员确实通过这些程序打开了excel文件。我希望可以这样做。抱歉,更正一下,其他一些程序员从excel文件中提取了信息,但我正在尝试打开excel文件。是的,没关系,excel无法读取嵌入的资源,必须将其提取到本地计算机。我只是想知道为什么它会在eclipse中打开,但当您导出它时就不会了?我试过了,Eclipse正在尝试从getResource更改为getResourceAsStream,对吗?我的main方法中确实有一个异常。但即使使用getResourceAsStream,它也没有输出任何内容。是的,这是正确的。这将输出一些内容或抛出一个错误,如果您没有看到错误,您将捕获异常并在某个地方忽略它。