【发布时间】:2012-06-25 20:57:36
【问题描述】:
我正在编写一个向 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文件系统语法不正确,请见谅,请不要将问题归咎于此。
如果您需要任何进一步的信息,请询问,我会尽快提供
谢谢大家=)
【问题讨论】:
-
首先,您应该在 catch 块中记录 IOExceptions(测试 e.printStackTrace() 就足够了)。其次,如果只执行
mv(exec3),是否也会出现问题? -
不,我可以复制并粘贴从构造函数打印的命令,它工作得很好。
-
在主程序中没有抛出异常我已经实现了这个示例??
-
关于异常:给定您的示例程序,您甚至无法知道是否抛出了 IOException - 因为空的 catch 块。
-
我同意,但就像我说的,这只是一个示例
标签: java unix command runtime shellexecute