jarに含まれるテキストファイルを読み込もうとしているJavaアプリがあります。
そうするとgetClass().getResource("/a/b/c/")
、そのパスのURLを作成でき、それを印刷でき、すべてが正常に表示されます。
ただし、試してみるとgetClass().getResource(/a/b/../")
、null
URLが返されます。
..
道のりが気に入らないようです。誰かが私が間違っているのを見ますか?役立つ場合は、さらにコードを投稿できます。
jarに含まれるテキストファイルを読み込もうとしているJavaアプリがあります。
そうするとgetClass().getResource("/a/b/c/")
、そのパスのURLを作成でき、それを印刷でき、すべてが正常に表示されます。
ただし、試してみるとgetClass().getResource(/a/b/../")
、null
URLが返されます。
..
道のりが気に入らないようです。誰かが私が間違っているのを見ますか?役立つ場合は、さらにコードを投稿できます。
クラスのnormalize()
メソッド(4つあります)FilenameUtils
が役に立ちます。これは、ApacheCommonsIOライブラリにあります。
final String name = "/a/b/../";
final String normalizedName = FilenameUtils.normalize(name, true); // "/a/"
getClass().getResource(normalizedName);
getResource()で指定するパスはファイルシステムパスではなく、ファイルオブジェクト(およびその同類)によってパスが解決されるのと同じ方法で正規に解決することはできません。別のパスに関連するリソースを読み取ろうとしていると思いますか?