首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web开发 >

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

2013-06-19 
[好奇怪]java调用批处理的问题我需要用java调用一个用java生成的批处理文件(.bat) 代码如下:Date date n

[好奇怪]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 


[解决办法]
[好奇怪]java调用批处理的有关问题哥不会啊,怎么办啊
[解决办法]

Runtime.getRuntime().exec("c:\\produce\"+date+"\"+date+".bat");

换成下面试下
Runtime.getRuntime().exec("cmd /C "c:\\produce\"+date+"\"+date+".bat"");

热点排行