java怎样用Runtime.getRuntime().exec调用一串命令
我用语句Runtimerun=Runtime.getRuntime();StringcmdText="cmd.exe/cipconfig/nping"+strIpName...
我用语句
Runtime run = Runtime.getRuntime();
String cmdText="cmd.exe /c ipconfig/n ping "+strIpName;
Process process = run.exec(cmdText); 实现先调用ipconfig后再调用ping命令,这个不行,怎么实现调用一串命令? 展开
Runtime run = Runtime.getRuntime();
String cmdText="cmd.exe /c ipconfig/n ping "+strIpName;
Process process = run.exec(cmdText); 实现先调用ipconfig后再调用ping命令,这个不行,怎么实现调用一串命令? 展开
5个回答
展开全部
可以执行一个,不过好像一次执行不了多个。。
你要多调用几次。。
类似,你要调用 ipconfig ,再调用 ping
可以试试如下代码,我已经调试通过:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
public class Test {
public static void main (String[] args) {
excuteCommand("ipconfig");
excuteCommand("ping 10.141.26.50");
}
public static void excuteCommand(String command)
{
Runtime r = Runtime.getRuntime();
Process p;
try {
p = r.exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String inline;
while ((inline = br.readLine()) != null) {
System.out.println(inline);
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
你要多调用几次。。
类似,你要调用 ipconfig ,再调用 ping
可以试试如下代码,我已经调试通过:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
public class Test {
public static void main (String[] args) {
excuteCommand("ipconfig");
excuteCommand("ping 10.141.26.50");
}
public static void excuteCommand(String command)
{
Runtime r = Runtime.getRuntime();
Process p;
try {
p = r.exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String inline;
while ((inline = br.readLine()) != null) {
System.out.println(inline);
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
展开全部
命令行一次只能接受一个命令,你输入一个命令就是做一件事,应该不能先做一件事再做另一件事,但是你能在java中控制连续执行两次cmd。
String []cmdarray = new String[3];
cmdarray[0] = "cmd";
cmdarray[1] = "/c";
cmdarray[2] = "ipconfig /all";
Runtime.getRuntime().exec(cmdarray);
cmdarray[0] = "cmd";
cmdarray[1] = "/c";
cmdarray[2] = "ping 127.0.0.1";
Runtime.getRuntime().exec(cmdarray);
String []cmdarray = new String[3];
cmdarray[0] = "cmd";
cmdarray[1] = "/c";
cmdarray[2] = "ipconfig /all";
Runtime.getRuntime().exec(cmdarray);
cmdarray[0] = "cmd";
cmdarray[1] = "/c";
cmdarray[2] = "ping 127.0.0.1";
Runtime.getRuntime().exec(cmdarray);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个 批处理 filename.bat文件,将一串命令写入批处理中
Java的process 只run.exec(‘filename.bat’)就可以了
Java的process 只run.exec(‘filename.bat’)就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个问题是因为线程在不停的等待造成的。你可以将你cmd.exe /c ipconfig/n ping这个命令在dos执行下,如果执行完了,你看那个dos窗口关闭么,是不是还在等待你的输入。所以java的process 在等待获取你的输入数据线程应该处于wait状态。所以,你要做到,如果第一执行完语句就应该关闭这个线程,process.destroy();然后再去执行新的命令。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-26 · 知道合伙人数码行家
关注
展开全部
DDDDDDDD
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询