Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何等待java函数删除所有文件?_Java_Delete File_Reboot - Fatal编程技术网

如何等待java函数删除所有文件?

如何等待java函数删除所有文件?,java,delete-file,reboot,Java,Delete File,Reboot,我有个问题。 我有一个功能,删除一些文件,然后重新启动系统。它包含很多文件,因此在删除整个文件集之前,我的重新启动命令将被执行 如何在Java代码中解决这个问题 要删除文件,我正在使用: Runtime.exec("/bin/rm -rf /myDir"); Runtime.exec("/bin/shutdown -r now"); 您可以使用exec返回的过程,并等待它完成: Process p = Runtime.exec("/bin/rm -rf /myDir"); p.waitFor(

我有个问题。
我有一个功能,删除一些文件,然后重新启动系统。它包含很多文件,因此在删除整个文件集之前,我的重新启动命令将被执行

如何在Java代码中解决这个问题

要删除文件,我正在使用:

Runtime.exec("/bin/rm -rf /myDir");
Runtime.exec("/bin/shutdown -r now");

您可以使用
exec
返回的
过程
,并等待它完成:

Process p = Runtime.exec("/bin/rm -rf /myDir");
p.waitFor();
Runtime.exec("/bin/shutdown -r now");

您可以使用
exec
返回的
过程
,并等待它完成:

Process p = Runtime.exec("/bin/rm -rf /myDir");
p.waitFor();
Runtime.exec("/bin/shutdown -r now");

Runtime.exec方法返回可以调用的进程


对第一个命令执行此操作,然后启动第二个命令。

Runtime.exec方法返回一个可以调用的进程


对第一个命令执行此操作,然后启动第二个命令。

您可以使用Process.waitFor()等待命令完成,也可以一次完成所有操作

Runtime.exec("/bin/sh -c '/bin/rm -rf /myDir ; /bin/shutdown -r now'");

您可以使用Process.waitFor()等待命令完成,也可以一次完成所有操作

Runtime.exec("/bin/sh -c '/bin/rm -rf /myDir ; /bin/shutdown -r now'");

如果您
等待机器重新启动,它可能没有按您认为的那样运行。;)想法是等待rm命令完成,以便能够正确启动关机。建议的解决方案会起作用,因为关机只是发送一个信号,在主机关闭之前它不会阻塞。如果您
等待机器重新启动,它可能不会执行您认为的操作。;)想法是等待rm命令完成,以便能够正确启动关机。建议的解决方案会起作用,因为关机只是发送一个信号,在主机关机之前它不会阻塞。我不明白这是如何解决我的问题的?你能给我解释一下吗。当我尝试man sh时,我无法获得很多信息来等待它完成。
sh
是基本shell
bash
是Bourne SHell,它是它的扩展。它通过运行
rm
来工作,完成后,运行
shutdown
,也就是说,您的Java程序不需要等待。如果在另一个Java函数中有这个shutdown命令,该怎么办。在这种情况下,我是否必须像Runtime.exec那样(“/bin/sh-c'/bin/rm-rf/myDir'”);然后调用执行关闭的函数?如果它们是单独的Java命令,则需要创建一个组合命令或在第一个命令上使用waitFor()。我不明白这是如何解决我的问题的?你能给我解释一下吗。当我尝试man sh时,我无法获得很多信息来等待它完成。
sh
是基本shell
bash
是Bourne SHell,它是它的扩展。它通过运行
rm
来工作,完成后,运行
shutdown
,也就是说,您的Java程序不需要等待。如果在另一个Java函数中有这个shutdown命令,该怎么办。在这种情况下,我是否必须像Runtime.exec那样(“/bin/sh-c'/bin/rm-rf/myDir'”);然后调用执行关闭的函数?如果它们是单独的Java命令,则需要创建一个组合命令或在第一个命令上使用waitFor()。这里没有格式化硬盘的内容。这里没有格式化硬盘的内容。