1

jar 内の別のクラスから jar 内のファイルを読み込もうとしています。ただし、同じエラーが継続的に発生します: Caught: class java.io.FileNotFoundException while attempts to read metrics: metrics.yml

最初に、クラスのパスからのものであると仮定して、コードに次のようなことをさせました。

String yamlPath = ".." + File.separator + ".." + File.separator + ".." + File.separator + ".." + File.separator + "myYaml.yml";

InputStream in = new FileInputStream(new File(yamlPath));
InputStreamReader isr = new InputStreamReader(in);
BufferedReader input = new BufferedReader(isr);
yamlObj = (HashMap) javaYAML.load(input);

また、jar のベースからパスを取得する可能性があると仮定して、これを行いました。

String yamlPath = "myYaml.yml";

InputStream in = new FileInputStream(new File(yamlPath));
InputStreamReader isr = new InputStreamReader(in);
BufferedReader input = new BufferedReader(isr);
yamlObj = (HashMap) javaYAML.load(input);

次に、このスレッドに気づきましたJavaでjarからファイルを読み取る方法は? パスの前に「/」が必要であることがわかりました。スラッシュも使用して、上記の両方の方法を試しました。

String yamlPath = File.seperator + ".." + File.separator + ".." + File.separator + ".." + File.separator + ".." + File.separator + "myYaml.yml";

OR

String yamlPath = File.seperator + "myYaml.yml";

私は今、このエラーをどうするかについて完全に迷っています。jar 構造について得られないものはありますか? ファイルが見つからないのはなぜですか。ヘルプ/情報をお寄せいただきありがとうございます。

申し訳ありませんが、JAR のどこにあるかを忘れていました: クラスは次のパスにあります: com/a/b/c/myclass.class yaml は次のパスにあります: myYaml.yml

4

3 に答える 3