我有一个程序,我必须从命令行获取路径作为输入,可能使用通配符,如?,*和**。 Java坚持不断扩展这些路径,通常搞砸了。
例如:
java -jar myapp.jar C:/Hello/World/*
给我一个String [] args,如下所示:
["C:\Hello\World\foo", "C:\Hello\World\bar"]
这不仅非常麻烦,而且还会弄乱**通配符:
java -jar myapp.jar C:/Hello/World/**
提供与以前相同的东西,**应该是递归搜索。我有一个有效地执行此操作的算法,我最初是在python上开发的,但如果我不能使用它,那就毫无意义了。有没有办法防止这种情况发生?
编辑=我尝试使用不同的shell(PowerShell,cmd,eclipse),使用不同的格式(没有引号,引号,双引号),但没有一种工作。
答案 0 :(得分:5)
Java不是这样做的,它是你的shell。
引用参数:
java -jar myapp.jar 'C:/Hello/World/**'
或者
java -jar myapp.jar "C:/Hello/World/**"
答案 1 :(得分:0)
这可能是完全错误的,但试试这个:
java -jar myapp.jar C:/Hello/World/\*