new を使用しJava 7 NIO file library
て、通常のファイルシステムと同じ方法で jar 内のディレクトリ ツリーをトラバースすることは可能ですか?
私はディレクトリ構造を持っています。イメージを読み込んでおり、そこから通常の方法で実行することも、jar ファイルとしてパッケージ化して実行することもできます。java -jar.
新しい FileSystem クラスと FileVisitor でこれを実現できるようですが、jar 内でこれがどのように機能するかについてのドキュメントはほとんどありません。私は次のことを試しました:
private static final FileSystem fileSystem = FileSystems.getDefault();
public static final String workingDir = System.getProperty("user.dir");
Files.walkFileTree(fileSystem.getPath(workingDir, "\res\training\"), new FileVisitor<Path>() {
...
});
これは、IDE またはコマンドラインから実行する場合は正常に機能しますが、jar としてパッケージ化すると、次のようなエラーが発生します。
スレッド「メイン」の例外 java.lang.Error:
java.nio.file.NoSuchFileException: C:\Users\残りのパス\ jar_folder \res\training at util.Main.(Main.java:47) 原因: java .nio.file.NoSuchFileException: C:\Users\残りのパス\ jar フォルダー\res\training
明らかに、jar 自体ではなく、jar が実行されているディレクトリでファイルを見つけようとしています。