代码如下:
public class Test1 { public static void main(String[] args) throws IOException, InterruptedException {
Process proc = null;
String line=null;
BufferedReader br = null;
proc = Runtime.getRuntime().exec("svnadmin dump F:/Repositories/TestRepo > d:/abc.svn");
Test2 t1 =new Test2(proc.getInputStream(),"stand");
Test2 t2 = new Test2(proc.getErrorStream(),"error");
t1.start();
t2.start();
int exitVal = proc.waitFor();
System.out.println(exitVal);
}
}class Test2 extends Thread{
InputStream is;
String type;
public Test2(InputStream temp,String type){
this.is = temp;
this.type = type;
}
public void run(){
String line="";
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);;
try {
while ((line = br.readLine()) != null){
if(line.trim().length() > 0){
if("error".equals(type)){
System.out.println(line);
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}控制台显示结果:
* 已转存版本 0。
* 已转存版本 1。
* 已转存版本 2。
* 已转存版本 3。
* 已转存版本 4。
* 已转存版本 5。
* 已转存版本 6。
0但是程序执行完毕后,并没有在d盘生成abc.svn这个文件。请问这是什么原因?
我把那条svn备份语句直接在cmd里执行,就没有问题
public class Test1 { public static void main(String[] args) throws IOException, InterruptedException {
Process proc = null;
String line=null;
BufferedReader br = null;
proc = Runtime.getRuntime().exec("svnadmin dump F:/Repositories/TestRepo > d:/abc.svn");
Test2 t1 =new Test2(proc.getInputStream(),"stand");
Test2 t2 = new Test2(proc.getErrorStream(),"error");
t1.start();
t2.start();
int exitVal = proc.waitFor();
System.out.println(exitVal);
}
}class Test2 extends Thread{
InputStream is;
String type;
public Test2(InputStream temp,String type){
this.is = temp;
this.type = type;
}
public void run(){
String line="";
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);;
try {
while ((line = br.readLine()) != null){
if(line.trim().length() > 0){
if("error".equals(type)){
System.out.println(line);
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}控制台显示结果:
* 已转存版本 0。
* 已转存版本 1。
* 已转存版本 2。
* 已转存版本 3。
* 已转存版本 4。
* 已转存版本 5。
* 已转存版本 6。
0但是程序执行完毕后,并没有在d盘生成abc.svn这个文件。请问这是什么原因?
我把那条svn备份语句直接在cmd里执行,就没有问题
解决方案 »
- 关于HQL数学运算符查询
- js跳转问题?
- IE和Firefox,关于onchange()的问题!
- 通过列表框中的时间实现数据库查询,急急急!
- 有关用户注册登录系统的验证reg_action.jsp问题
- 巨菜的问题,关于日期字段的查询。
- Jsp的中文问题
- 我的tomcat设置怎么不管用?请多指教
- 大神们,我想问下Hibernate: insert into Teacher (age, name, id) values (?, ?, ?)怎么出来的,是哪句
- 关于jsoup的端口问题
- 对象名 'jigoubaobiao' 无效,是怎么回事?
- 急救 (webservice SoapHeader验证 客户端)
> d:/abc.svn 给忽略掉了,难道>是特殊字符,还是两个路径有问题?
LZ可以用将执行的命令写成批处理文件,然后执行批处理文件即可,这样顺便也实现解耦了,还保险。比如:
String commandStr = "oper.bat";
Process process = Runtime.getRuntime().exec(commandStr);把svnadmin dump F:/Repositories/TestRepo > d:/abc.svn 写到oper.bat中