当前位置: 代码迷 >> Web开发 >> [好奇怪]java调用批处理的有关问题
  详细解决方案

[好奇怪]java调用批处理的有关问题

热度:138   发布时间:2013-06-19 10:26:41.0
[好奇怪]java调用批处理的问题
我需要用java调用一个用java生成的批处理文件(.bat) 代码如下:

Date date = new Date();
String s = "";
        try {
         File f = new File("c:\\produce\\"+date+"\\"+date+".bat");
         if(!f.exists()){
          f.createNewFile();//不存在则创建
          BufferedReader input = new BufferedReader(new FileReader(f));
          
          if(input.readLine()==null){
              s += "net stop mysql \r\n";
              s += "xcopy \"c:\\produce\\"+date+"\\*.*\" \"E:\\Program Files\\MySQL\\MySQL Server 5.0\\data\\test\\\" /y \r\n";
              s += "net start mysql \r\n";
          }
          System.out.println(s);
          input.close();
          
          BufferedWriter output = new BufferedWriter(new FileWriter(f));
          output.write(s);
          output.close();
         }
         Runtime.getRuntime().exec("c:\\produce\\"+date+"\\"+date+".bat");

最后生成的批处理文件如下
net stop mysql 
xcopy "c:\produce\2013-01-26\*.*" "E:\Program Files\MySQL\MySQL Server 5.0\data\test\" /y 
net start mysql
 
下面问题来了:
java运行完连带创建的批处理文件也运行了,复制的功能实现了,但是注意:批处理中第一句(net stop mysql)停止了mysql在windows下的服务项,批处理最后一句(net start mysql)却并未重新开启mysql在windows下的服务项(我的操作系统是winXP),也就是说我运行完这个java代码后,我的mysql服务被停止了。
我就疑惑:是不是java运行这个批处理没有运行完?希望大家帮我解决一下。
java mysql windows server

------解决方案--------------------
为分而来!分............................................................................................................40分

抢分而来。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
                             40分夺分而走  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

                                                       谢谢@329%4023 
  相关解决方案