防止java处理路径通配符

时间:2011-10-19 18:03:59

标签: java

我有一个程序,我必须从命令行获取路径作为输入,可能使用通配符,如?,*和**。 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),使用不同的格式(没有引号,引号,双引号),但没有一种工作。

2 个答案:

答案 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/\*