假设我想在命令行上传递以下路径:
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
。
这会带来许多问题,并且比首次出现时要复杂得多。我们如何告诉Java“a\test
”实际上是“C:\example a\test
”而不是“<parent directory>\a\test
”的一部分?
答案 0 :(得分:1)
使用引号:
java -jar myjar.jar "C:\example a\test" "C:\example b\test\"
答案 1 :(得分:0)
创建规范文件并从中提取绝对名称:
try {
File file = (new File(arr[0])).getCanonicalFile();
arr[0] = file.getAbsolutePath();
} catch (IOException e) {
// handle exception
}
这样你可以比较它们。