public void destroy() {
try {
//the lines below do not work.... but don't know why.
java.lang.Runtime.getRuntime().exec("del " + gv.CONTEXT_ROOT_TEMP + "/tmp*");
java.lang.Runtime.getRuntime().exec("rm " + gv.CONTEXT_ROOT_TEMP + "/tmp*");
} catch (Exception e) {
//ignore
}
}请问大家这个getRuntime().exec为什么总是执行不了系统命令啊。java.lang.Runtime.getRuntime().exec("dir c:");直接这样也会抛异常。不知道什么原因啊。
try {
//需要清理subprocess的输入流,在服务器上大小有限制,容易引起process阻塞
Process process = Runtime.getRuntime().exec("sh /backup/google/googlecount/count.sh");
final InputStream is = process.getInputStream();
new Thread(new Runnable() {
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
while(br.readLine() != null) ;
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
final InputStream ise = process.getErrorStream();
new Thread(new Runnable() {
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(ise));
try {
while(br.readLine() != null) ;
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
} catch(Exception e) {
}
注意d:\\1.txt要使用双斜杠转义可测试代码如下,dir的是当前的代码运行路径
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("cmd /c dir");
InputStream o = p.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(o)); String str = in.readLine();
while(str !=null)
{
System.out.println(str);
str = in.readLine();
}