JDK提供执行Dos命令的方法,即:
Runtime.getRuntime().exec("Dos命令");
这样我们可以轻松的用java代码来和windows来交互了,比如执行如下代码来达到定时关机的目的了:
Runtime.getRuntime().exec("at 12:00 shutdown -s");
/**
*例子代码,为执行ping操作
*/
package liaodongxiaoxiao.shutdown;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class Test
{
public static void main(String[] args)
{
try
{
// 执行ping命令
Process process = Runtime.getRuntime().exec("ping 127.0.0.1");
// 记录dos命令的返回信息
StringBuffer resStr = new StringBuffer();
// 获取返回信息的流
InputStream in = process.getInputStream();
Reader reader = new InputStreamReader(in);
BufferedReader bReader = new BufferedReader(reader);
for (String res = ""; (res = bReader.readLine()) != null;)
{
resStr.append(res + "\n");
}
bReader.close();
reader.close();
System.out.println(resStr.toString());
} catch (IOException e)
{
e.printStackTrace();
}
}
}
执行的结果为:
正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms