【问题标题】:Java JAR can't find fileJava JAR 找不到文件
【发布时间】:2013-12-25 10:14:36
【问题描述】:

我在 Eclipse 中运行一个程序,它引用程序源文件夹中的一个文件。但是,当我将程序导出到可运行的 JAR 中时,程序似乎找不到该文件。从本质上讲,该程序在 Eclipse 中可以完美运行,但当它是一个独立程序时就不能这样做了。

我附上了一张我如何在程序中引用文件的照片。

【问题讨论】:

    标签: file jar reference path load


    【解决方案1】:

    一旦它在 jar 中,您就无法使用 new File() 找到它——它现在是一个类路径资源。您需要使用this.getClass().getResourceAsStream("/TestFileFolder/TRANSFER.xls");(或者,如果您的方法是静态的,则需要使用className.class 代替getClass())。

    这实际上是一个特性——如果出于任何原因您需要更改 TRANSFER.xls 资源,您可以通过在类路径中隐藏它来实现,而无需重新打包 jar。

    【讨论】:

    • 那么'this.getClass().getResourceAsStream("/TestFileFolder/TRANSFER.xls");'会返回什么?我很困惑这会给我带来什么以及我将把它放在哪里。
    • 没关系。我意识到您显示的内容将替换文件输入流。这似乎解决了我的问题。
    • 那你为什么不点击复选框接受答案呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    相关资源
    最近更新 更多