您的位置:首页 > 编程语言 > Java开发

Java调用Windows内cmd命令

2016-05-26 10:57 881 查看
很多情况下,在Windows进行操作时,直接使用cmd命令提示符会远比通过Java实现简便的多,所以我们可以通过使用Java调用cmd命令的方式来完成这一操作。

Java的Runtime.getRuntime().exec(commandStr)方法提供了调用执行cmd指令的实现。

cmd /c
dir 是执行完dir命令后关闭命令窗口。 

cmd /k dir 是执行完dir命令后不关闭命令窗口。 

cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。 

cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。

当我们需要删除一个文件夹下所有的文件时,File类里的删除方法delete()不能删除非空的文件夹,必须通过一定的逻辑代码遍历目录下所有的文件删除,比较繁琐,而使用cmd命令,只需要一行就可以实现了。

/**
* @Title: deleteAllFiles
* @Description: 将目录下全部文件删除
* @param path: 目录路径(path = "D:\\Test\\Download\\")
* @return
* @throws Exception
*/
public void deleteAllFiles(String path){
try {
String cmd = "cmd /c del /s/q "+path+"\\*.*";
Runtime.getRuntime().exec(cmd).waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}注:/s代表删除所有子目录及子目录下文件,/q代表删除时不需再次确认,

移动操作

/**
* @Title: moveAllFiles
* @Description: 将原目录下全部文件复制到目标目录,并删除原文件
* @param originpath: 原目录路径
* @param targetpath: 目标目录路径
* @return
* @throws Exception
*/
public void moveAllFiles(String originpath,String targetpath){
try {
String cmd = "cmd /c copy " + originpath + "\\* " + targetpath + "\\";
Runtime.getRuntime().exec(cmd).waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
String cmd = "cmd /c del /s/q "+originpath+"\\*.*";
Runtime.getRuntime().exec(cmd).waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}先执行了一遍复制命令,再删除原文件

这两个例子帮助大家理解应用的方法,凡是cmd的命令都可以如此调用,是不是觉得方便了很多,希望这篇文章对你有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息