0

コマンドラインで次のパスを渡したいとしましょう。

Path a: C:\example a\test
Path b: C:\example b\test\

java -jar myjar.jar C:\example a\test C:\example b\test\

Java は空白を使用して引数を分割するため、次のような args 配列になります。

arr[0] = C:\example
arr[1] = a\test
arr[2] = C:\example
arr[3] = b\test\

しかし、非絶対パスも受け入れたい場合は、 " \test" を指定すると、プログラムはそれを として受け入れ<parent directory>\testます。

これにより、多くの問題が発生し、一見したよりもはるかに複雑になります。a\test" " が実際には " C:\example a\test" ではなく" " の一部であることを Java に伝えるにはどうすればよい<parent directory>\a\testでしょうか?

4

2 に答える 2

0

正規ファイルを作成し、そこから絶対名を抽出します。

try {
    File file = (new File(arr[0])).getCanonicalFile();
    arr[0] = file.getAbsolutePath();

} catch (IOException e) {
    // handle exception
}

このようにして、それらを比較できます。

于 2013-08-21T19:07:45.387 に答える