私のプログラムにファイルを読み込みたいだけです。このファイルは、作業ディレクトリの上のディレクトリ "../f.fsh"にあります。私はIDEgetResourceAsStream()はJARではなくIDEで動作するのはなぜですか?
String name="../f.fsh";
InputStream is = getClass().getResourceAsStream(name);
InputStreamReader isreader=new InputStreamReader(is);//CRASHES HERE WITH NULL POINTER EXCEPTION
BufferedReader br = new BufferedReader(isreader);
でそれを実行するが、私はそれの内部f.fsh zip圧縮を持っており、それを実行してJARファイルを作成するときにInputStreamReaderを作成する際のInputStreamので、それは、クラッシュしたときに、次のコードは正常に動作します無効である。
私は入力ストリームとJARファイルに関する質問にたくさんの回答を読んでいますが、私がそこから抜け出せたのは、相対パスを使用する必要がありますが、私は既にそれをやっています。 getResourceAsStream()がプロジェクトのルートに関連するファイルを見つけることができることから、それが私が望むものです。なぜJARで動かないのですか?何がうまくいかない、どうすれば修正できますか?
クラスパスと関係がありますか?私はそれが実行されている瓶の外部のファイルを含めるためだけだと思った。
私も試みたが、中にスラッシュを入れたときに、まだ、失敗していますHow to get a path to a resource in a Java JAR file andfound JARの内容がnecesarilyファイルとしてづけしないかもしれないこと:私は見て
InputStream is = getClass().getResourceAsStream("\\"+name);
。だから私はjarファイル(jarファイルから1つ上のディレクトリ)をコピーしてみましたが、それでも失敗します。いずれにせよ、私はファイルを瓶の中に残して、そこにあるファイルを読むことができるようにしたいと思います。私は何がうまくいかないのか分からない。
ありがとうございます。私は自分のファイルの場所を変更し、私のリソースがどこにあるのかを調べて、このエラーをジャーで過ぎ去れました。私は、Eclipseには私の好意でバグがあったとは決して考えなかったでしょう。どうもありがとうございます! – AAB