Runtime.exec();命令行调用连续问题??
大家好最近在做一个web模拟shell的一个功能,由于之前没有用过exec这个所以比较弱,查找的资料也不是很满意,项目又要的比较急,所以请懂的支点招,现在调用一个命令倒是可以执行,现在就是不能连续起来(比如:先执行了个cd....命令,在接着这个cd的位置执行一些命令就不行),先在这里谢谢大家了
------解决方案--------------------我记得是可以组合执行一组命令的,你查看下API,可以传一个String[] cmdArray
------解决方案--------------------使用ProcessBuilder
------解决方案--------------------直接用全路径好了,不要cd了,执行的话加上全路径
------解决方案--------------------
其实是执行了,但是没打印,你要用流去读取打印
ps我代码里是H盘,我没有D盘
Process process = Runtime.getRuntime().exec(new String[]{"cmd","/C","dir H:"});
InputStream is = process.getInputStream();
BufferedReader bw = new BufferedReader(new InputStreamReader(is));
String line = "";
while((line = bw.readLine()) != null){
System.out.println(line);
}
打印:
Volume in drive H is xxx$
Volume Serial Number is 0302-27AA
Directory of H:\
07/04/2012 03:45 PM <DIR> Data
09/03/2012 11:06 AM <DIR> helloworld
11/01/2012 09:07 AM <DIR> WINDOWS
03/07/2013 02:42 PM 0 .mongorc.js
03/14/2013 06:01 PM 654 .bash_history
04/11/2013 02:51 PM 100 .gitconfig
11/06/2013 10:56 AM 13,207 _viminfo
03/13/2013 10:21 AM <DIR> t
04/02/2013 02:47 PM <DIR> Library
07/01/2013 04:22 PM <DIR> .ssh
09/16/2013 10:52 AM 85 logfile.txt
09/16/2013 02:57 PM <DIR> xxx
09/17/2013 04:05 PM <DIR> initnew
09/17/2013 03:15 PM <DIR> videonew
09/22/2013 01:31 PM <DIR> cross
09/17/2013 03:20 PM <DIR> USB
09/23/2013 02:54 PM <DIR> quhao
5 File(s) 63,198 bytes
12 Dir(s) 1,145,304,395,776 bytes free
------解决方案--------------------这种调用一般把多个命令写在.sh或者.bat文件里,然后调用这个文件就行了。