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