Java调用Windows命令
2008-07-18 16:33
471 查看
Java调用Windows命令
Java调用Windows命令主要用到两个类:
java.lang.Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
java.lang.Process
ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。
下面是个简单例子:
package com.lavasoft;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-7-18
* Time: 14:18:27
* Java调用Windows命令测试
*/
public class TestCmd {
public static void main(String args[]) {
testWinCmd();
dirOpt();
}
public static void testWinCmd() {
System.out.println("------------------testWinCmd()--------------------");
Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.totalMemory());
System.out.println(runtime.freeMemory());
System.out.println(runtime.maxMemory());
System.out.println(runtime.availableProcessors()); //处理器数
try {
//执行一个exe文件
runtime.exec("notepad");
runtime.exec("C:\\Program Files\\Microsoft Office\\OFFICE11\\winword.exe c:\\test.doc");
//执行批处理
runtime.exec("c:\\x.bat");
//执行系统命令
runtime.exec("cmd /c dir ");
runtime.exec("cmd /c dir c:\\");
// //-------------- 文件操作 --------------
runtime.exec("cmd /c copy c:\\x.bat d:\\x.txt"); //copy并改名
runtime.exec("cmd /c rename d:\\x.txt x.txt.bak"); //重命名
runtime.exec("cmd /c move d:\\x.txt.bak c:\\"); //移动
runtime.exec("cmd /c del c:\\x.txt.bak"); //删除
//-------------- 目录操作 --------------
runtime.exec("cmd /c md c:\\_test"); //删除
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 执行批处理文件,并获取输出流重新输出到控制台
*/
public static void dirOpt() {
System.out.println("------------------dirOpt()--------------------");
Process process;
try {
//执行命令
process = Runtime.getRuntime().exec("c:\\x.bat");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
x.bat
del c:\del.txt
cd D:
dir
运行结果:
------------------testWinCmd()--------------------
2031616
1652120
66650112
2
------------------dirOpt()--------------------
D:\_dev_stu\fileopt>del c:\del.txt
D:\_dev_stu\fileopt>cd D:
D:\_dev_stu\fileopt
D:\_dev_stu\fileopt>dir
驱动器 D 中的卷是 DISK1_VOL2
卷的序列号是 70FB-DFAF
D:\_dev_stu\fileopt 的目录
2008-07-18 09:30 <DIR> .
2008-07-18 09:30 <DIR> ..
2008-07-18 09:30 <DIR> src
2008-07-18 09:31 549 fileopt.iml
2008-07-18 09:31 10,292 fileopt.ipr
2008-07-18 14:27 <DIR> classes
2008-07-18 16:42 26,265 fileopt.iws
3 个文件 37,106 字节
4 个目录 8,095,498,240 可用字节
Process finished with exit code 0
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/88507
Java调用Windows命令主要用到两个类:
java.lang.Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
java.lang.Process
ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。
下面是个简单例子:
package com.lavasoft;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-7-18
* Time: 14:18:27
* Java调用Windows命令测试
*/
public class TestCmd {
public static void main(String args[]) {
testWinCmd();
dirOpt();
}
public static void testWinCmd() {
System.out.println("------------------testWinCmd()--------------------");
Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.totalMemory());
System.out.println(runtime.freeMemory());
System.out.println(runtime.maxMemory());
System.out.println(runtime.availableProcessors()); //处理器数
try {
//执行一个exe文件
runtime.exec("notepad");
runtime.exec("C:\\Program Files\\Microsoft Office\\OFFICE11\\winword.exe c:\\test.doc");
//执行批处理
runtime.exec("c:\\x.bat");
//执行系统命令
runtime.exec("cmd /c dir ");
runtime.exec("cmd /c dir c:\\");
// //-------------- 文件操作 --------------
runtime.exec("cmd /c copy c:\\x.bat d:\\x.txt"); //copy并改名
runtime.exec("cmd /c rename d:\\x.txt x.txt.bak"); //重命名
runtime.exec("cmd /c move d:\\x.txt.bak c:\\"); //移动
runtime.exec("cmd /c del c:\\x.txt.bak"); //删除
//-------------- 目录操作 --------------
runtime.exec("cmd /c md c:\\_test"); //删除
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 执行批处理文件,并获取输出流重新输出到控制台
*/
public static void dirOpt() {
System.out.println("------------------dirOpt()--------------------");
Process process;
try {
//执行命令
process = Runtime.getRuntime().exec("c:\\x.bat");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
x.bat
del c:\del.txt
cd D:
dir
运行结果:
------------------testWinCmd()--------------------
2031616
1652120
66650112
2
------------------dirOpt()--------------------
D:\_dev_stu\fileopt>del c:\del.txt
D:\_dev_stu\fileopt>cd D:
D:\_dev_stu\fileopt
D:\_dev_stu\fileopt>dir
驱动器 D 中的卷是 DISK1_VOL2
卷的序列号是 70FB-DFAF
D:\_dev_stu\fileopt 的目录
2008-07-18 09:30 <DIR> .
2008-07-18 09:30 <DIR> ..
2008-07-18 09:30 <DIR> src
2008-07-18 09:31 549 fileopt.iml
2008-07-18 09:31 10,292 fileopt.ipr
2008-07-18 14:27 <DIR> classes
2008-07-18 16:42 26,265 fileopt.iws
3 个文件 37,106 字节
4 个目录 8,095,498,240 可用字节
Process finished with exit code 0
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/88507
相关文章推荐
- Java调用Windows控制台命令
- windows到linux下面文本从ansi转utf-8(java调用shell命令,java文件复制)
- java调用windows命令,并且获取打印的值。
- Java调用windows Dos命令的用法
- Windows平台Java调用cmd命令执行程序
- 在java中调用windows命令
- Java 调用FFMPEG命令进行视频格式转换 (windows环境)
- java实现liunx,windows命令的调用
- 调用windows set命令,查找 环境变量中带有java的环境变
- Java程序调用系统命令进行mysql数据库的备份与还原,windows下mysql备份
- java调用windows/Linux/Unix 命令行执行命令的方法--调用ImageMagick的合并图形的命令
- java调用windows中的doc命令生成压缩文件
- Java调用Windows命令
- win2000和XP下得到硬盘剩余空间(用java调用windows命令)
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- Java调用Windows控制台命令
- Java中调用windows cmd命令的两种方式
- java的Runtime在windows系统下调用ping命令乱码
- Windows使用Java调用taskkill命令结束进程
- Java调用Windows控制台命令方法介绍