2015-03-31 82 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?