запустить команду оболочки из java

Я работаю над приложением, у меня есть проблема с запуском команды оболочки из java-приложения. вот код:

public String execRuntime(String cmd) { Process proc = null; int inBuffer, errBuffer; int result = 0; StringBuffer outputReport = new StringBuffer(); StringBuffer errorBuffer = new StringBuffer(); try { proc = Runtime.getRuntime().exec(cmd); } catch (IOException e) { return ""; } try { response.status = 1; result = proc.waitFor(); } catch (InterruptedException e) { return ""; } if (proc != null && null != proc.getInputStream()) { InputStream is = proc.getInputStream(); InputStream es = proc.getErrorStream(); OutputStream os = proc.getOutputStream(); try { while ((inBuffer = is.read()) != -1) { outputReport.append((char) inBuffer); } while ((errBuffer = es.read()) != -1) { errorBuffer.append((char) errBuffer); } } catch (IOException e) { return ""; } try { is.close(); is = null; es.close(); es = null; os.close(); os = null; } catch (IOException e) { return ""; } proc.destroy(); proc = null; } if (errorBuffer.length() > 0) { logger .error("could not finish execution because of error(s)."); logger.error("*** Error : " + errorBuffer.toString()); return ""; } return outputReport.toString(); } 

но когда я пытаюсь выполнить команду exec, например:

 /export/home/test/myapp -T "some argument" 

myapp читает "some argument" как два разделенных аргумента. Но я хочу прочитать "some argument" как только аргумент. когда я непосредственно запускаю эту команду с терминала, она выполняется успешно. Я попробовал '"some argument"' , ""some argument"" , "some\ argument" но не работал для меня. как я могу прочитать этот аргумент как один аргумент.

Я помню, что перегрузка метода exec предоставляет параметр для аргументов отдельно. Вы должны использовать это

Ага. Вот

 public Process exec(String[] cmdarray) throws IOException 

Просто введите командную строку и все аргументы Отдельные элементы массива String

сначала сделать строку
String cmd = “/ export / home / test / myapp -T \” некоторый аргумент \ “”;
затем запустите cmd в proc

  • Алгоритм перестановки для массива целых чисел в Java
  • Как аннотация метода Java работает в сочетании с переопределением метода?
  • Регистрация и использование пользовательского протокола java.net.URL
  • Создать файл в UTF-8 с помощью FileWriter (Java)?
  • Избегание! = Null
  • Каков максимальный размер кучи по умолчанию для JVM Sun от Java SE 6?
  • Импорт Java и производительность кода
  • Hibernate SessionFactory или EntityManagerFactory
  • setOpaque (истина / ложь); Ява
  • Как структура fork / join лучше, чем пул streamов?
  • издевательский одноэлементный class
  • Давайте будем гением компьютера.