分類  >  WEB開發 >

[好奇怪]java調用批處理的有關問題

tags:    時間:2013-12-09 22:05:17
[好奇怪]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運行這個批處理沒有運行完?希望大家幫我解決一下。

------解決方案--------------------
為分而來!分............................................................................................................40分

搶分而來。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
                             40分奪分而走  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

                                                       謝謝@329%4023 

推薦閱讀文章

Bookmark the permalink ,來源:互聯網