2015-03-31 81 views
0

我想使用java程序运行批处理文件,当我双击.bat文件时,它会要求我输入'D',然后在C驱动器中创建一些文件夹,下面是.bat文件的内容:如何使用java运行批处理文件

xcopy "data" "C:\data" /S 
xcopy "rapid" "C:\rapid" /S 
subst x: /D 
subst x: C:\ 

我的Java代码如下:

try { 
      //C:\Desktop\Speed\view_R36_WD_Release\RAPID\switchToLive.Bat 
      String cmds[] = {"C:\\Users\\608521747\\Desktop\\Speed\\view_R36_WD_Release\\RAPID\\switchToDev.bat"}; 
      Runtime runtime = Runtime.getRuntime(); 
      Process process = runtime.exec(cmds); 
      process.getOutputStream().close(); 
      InputStream inputStream = process.getInputStream(); 
      InputStreamReader inputstreamreader = new InputStreamReader(inputStream); 
      BufferedReader bufferedrReader = new BufferedReader(inputstreamreader); 
      String strLine = ""; 
      while ((strLine = bufferedrReader.readLine()) != null) { 
       System.out.println(strLine); 
      } 
     } catch (IOException ioException) { 
      ioException.printStackTrace(); 
     } 

它没有给我任何错误,但它既不问我输入任何值也不产生任何夹。

我想知道我需要在java代码中做什么,以便它会要求我输入'D',然后.bat文件应该以正常流程继续。

任何帮助表示赞赏。

回答

0

您的代码需要指定要执行.bat文件的程序。 开始缩小以下修复程序。

p = run.exec("cmd.exe /c " + cmds); 

也试试this link for similar code为以前在这里回答的类似问题。

0

批处理文件不是可执行文件。因此,您需要运行cmd.exe并将该批处理文件作为参数传递。

请参阅这篇文章 - 它解决了同样的问题,并提供了一个很好的解决方案 - How do I run a batch file from my Java Application?