2

実行可能な .jar ファイルからファイルを読み込もうとしていますが、null 値を取得し続けます。

私はこのコードを持っています:

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 ファイルを含むフォルダーがあり、同じディレクトリに、copy.csv ファイルを保持する resources という名前のフォルダーがあります。

ただし、このコードはファイルを認識しません。

誰にもアイデアはありますか?

4

2 に答える 2

4

最初のスラッシュを削除します。

InputStream is = this.getClass().getResourceAsStream("resources/copy.csv");
于 2013-03-05T18:40:08.880 に答える
2

getClass()。getResourceAsStream(..)は、クラスに相対的なパスを使用します(つまり、パッケージdirsを含みます)。getClass()。getClassLoader()。getResourceAsStream(..)は絶対パスを使用します。したがって、コードを変更してクラスローダーを取得すると、機能します。

于 2013-03-05T18:42:12.407 に答える