Java InputStream无法从JAR中读取文件

问题描述 投票:2回答:2

我试图从我的可执行文件.jar文件中读取一个文件,但它不断获取空值。

我有这个代码:

public DanceEventTicketScanner(String txtfile){
    sv = new ScannerView(this);
    findcode = false;
    InputStream is = this.getClass().getResourceAsStream("/resources/copy.csv");
    if (is == null) JOptionPane.showMessageDialog(null, "Resource not located.");
}

在JAR文件中,我(正常情况下)包含所有.class文件的文件夹,并在同一目录中包含一个名为resources的文件夹,其中包含copy.csv文件。

但是,此代码无法识别该文件。

有没有人有任何想法?

java jar inputstream
2个回答
3
投票

删除第一个斜杠:

InputStream is = this.getClass().getResourceAsStream("resources/copy.csv");

2
投票

getClass()。getResourceAsStream(..)将使用相对于类的路径(所以inc。包dirs)。 getClass()。getClassLoader()。getResourceAsStream(..)将使用绝对路径。因此,更改您的代码并获取类加载器,它将工作。

© www.soinside.com 2019 - 2024. All rights reserved.