使用Runtime.getRuntime().exec(String[]cmdArray)时代码如下: String[] cmdArray = { "cmd /c cd d:\\" };
Runtime.getRuntime().exec(cmdArray);
报异常信息如下:java.io.IOException: Cannot run program "cmd /c cd d:\": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at lab.cmd.CmdTest.exec_strArr(CmdTest.java:19)
at lab.cmd.CmdTest.main(CmdTest.java:11)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 4 more
请问这是怎么回事呢?
谢谢....
Runtime.getRuntime().exec(cmdArray);
报异常信息如下:java.io.IOException: Cannot run program "cmd /c cd d:\": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at lab.cmd.CmdTest.exec_strArr(CmdTest.java:19)
at lab.cmd.CmdTest.main(CmdTest.java:11)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 4 more
请问这是怎么回事呢?
谢谢....
解决方案 »
- 一个算法
- 用applet调用浏览器打开网站!
- 抽象类和接口到底有哪些异同?
- TOMCAT发布WEB 它隐在的安全问题 !!!!
- 如何将java 桌面程序打包部署成安装文件?
- 在有已经有一个不错的java基础的情况下,spring、hibernate、webwork这三样最好的学习顺序是怎样
- 怎样将一个文件中的数据分别赋给两个不同的数组??
- 好好奇怪的问题,100分,applet在不同环境下显示问题
- 明天到北京国创科技有限公司笔试应聘java软件工程师,给点建议高分回报!!!!在线等待!!
- (SOS高手请进进,指点一二),关于RMI配置的问题:
- 关于JScrollPane不显示滚动条???
- 需要一个程序判断法定节假日,还有阴历的端午什么的,还有周末
这个命令不对吧。
try { //String myArgs[] ={"http://www.csdn.com/"};
Process process = Runtime.getRuntime().exec(
//"cmd.exe /c start http://www.csdn.com/"
"C:\\Program Files\\Internet Explorer\\iexplore.exe"
+" http://www.csdn.com/"
);
} catch (Exception e) {
e.printStackTrace();
}
}
}2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws IOException, InterruptedException {
Process p = Runtime.getRuntime().exec("cmd /c javac TestB.java & java TestB");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while((line=br.readLine()) !=null) {
System.out.println(line);
}
br.close();
}
}public class TestB {
public static void main(String[] args) {
System.out.println("in TestB");
}}
Process exec(String command)
在单独的进程中执行指定的字符串命令。
Process exec(String[] cmdarray)
在单独的进程中执行指定命令和变量。 是不是和字符串数组有关?
回huxiweng:
查看文档发现String[]cmdarray中的意思是:
cmdarray - array containing the command to call and its arguments. 有命令也有参数,不知道应该如何对cmdArray进行赋值呢?谢谢...
你的String数组中只有一个字符串啊,如果有参数就在数组中添加字符串。没有直接就用String就可以了。
// 这样编译运行通过
String cmdArray = "cmd /c cd d:\\";
try {
Runtime.getRuntime().exec(cmdArray);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
谢谢....
调用多个exec(),它们返回的Process之间是没有联系的,这样子会比较麻烦。
我之前做的是局域网内远程关闭计算机,即服务器收到关机指令后,关闭局域网内的其他所有计算机,所以我用了exec这个东西,我不需要获得Process,我只需要exec就可以了。
不知行不行!