并非所有unix shell的java命令都在运行

时间:2012-06-24 05:24:24

标签: java unix command runtime shellexecute

我正在编写一个将命令发送到unix shell的应用程序。

我发布cp和chmod命令(我知道)并没有遇到任何麻烦但是由于某种原因,mv命令实际上不会移动我加速的文件吗?

我的代码可以显示如下:

    import java.io.IOException;
    public class ExecuteCommand {   
        public static void main(String[] args){
            ExecuteCommand exec = new ExecuteCommand("cp /some/directory/file.txt /some/directory/of/mine/");
            ExecuteCommand exec2 = new ExecuteCommand("chmod 666 /some/directory/of/mine/file.txt");
            ExecuteCommand exec3 = new ExecuteCommand("mv /some/directory/of/mine/file.txt /some/directory/of/mine/subDirectory/");
        }
        public ExecuteCommand(String command) {
            try {
                    System.out.println("EXECUTING!::" + command);       
                    Process child = Runtime.getRuntime().exec(command);             
            } catch (IOException e) {
            }
        }

    }

我尝试在命令之间插入计时器,但没有确保我的命令的%100被处理。

请注意我的代码包含示例信息,如果某些unix文件系统语法不正确,请原谅我,请不要将此问题归咎于此。

如果您需要任何进一步的信息,请询问,我将尽快提供

谢谢大家=)

1 个答案:

答案 0 :(得分:0)

示例代码的一个问题是您正在压缩异常。如果有任何问题,你就会丢掉证据。

第二个问题是您在启动下一个命令之前不等待一个命令完成。如果后者依赖于较早的完成,则会失败。

第三个问题是您没有检查命令返回/退出代码,也没有查看它们可能产生的任何错误消息。错误消息可能会告诉您为什么命令不起作用...如果您不想抓取并打印它们。

最后(元)问题是这不是你真正的代码......所以我们不知道我们看到的问题是否只是你问题的假象。请提供真实代码,而不是一些糟糕的弓形化版本。