Runtime.getRuntime().exec()函数,输入参数中的通配符(*)不能被UNIX解析,java的缺陷?
代码:
String cmd = "chmod 755 /tmp/mywork/allProducts/*";
Process process = Runtime.getRuntime().exec(cmdArray);
process.waitFor();
process.destroy();
环境:
Saloris上,调用我的java jar 包运行主程序。其中有个目录/tmp/mywork/allProducts下包含很多产品的子目录,例如:
/tmp/mywork/allProducts/car/
/tmp/mywork/allProducts/bike/
/tmp/mywork/allProducts/chair/
....
我希望在程序中更改这些子目录的访问属性。 在Solaris 上直接调用命令chmod 755 /tmp/mywork/allProducts/* 是没有问题的。但是在上述程序中,却总返回1错误
我后来发现是这个*号引起的,到底是什么原因导致这个通配符在exec中不能用了?欢迎大家讨论。这也许是java的一个缺陷。。。回答有道理者都有分。