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

Смежные вопросы