日期:2014-05-20  浏览次数:20779 次

Runtime.exec();命令行调用连续问题??
 大家好最近在做一个web模拟shell的一个功能,由于之前没有用过exec这个所以比较弱,查找的资料也不是很满意,项目又要的比较急,所以请懂的支点招,现在调用一个命令倒是可以执行,现在就是不能连续起来(比如:先执行了个cd....命令,在接着这个cd的位置执行一些命令就不行),先在这里谢谢大家了
java exec 命令行

------解决方案--------------------
我记得是可以组合执行一组命令的,你查看下API,可以传一个String[] cmdArray
------解决方案--------------------
使用ProcessBuilder
引用
ProcessBuilder  directory(File directory)
Sets this process builder's working directory.

------解决方案--------------------
直接用全路径好了,不要cd了,执行的话加上全路径
------解决方案--------------------
引用:
Quote: 引用:

直接用全路径好了,不要cd了,执行的话加上全路径

比如我运行一个命令 Runtime.getRuntime().exec(new String[]{"cmd","/C","dir D:"}); 执行不了


其实是执行了,但是没打印,你要用流去读取打印
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文件里,然后调用这个文件就行了。