2013-12-03 2 views
1

Прежде всего, у меня были некоторые вопросы о процессе, но один я хочу исправить проходит несколько терминалов аргументы в Java:Попутный арг в исполняемый файл Unix (MacOS)

ProcessBuilder pb = new ProcessBuilder("bash", 
    "-c", 
    "/User/me/path/to/Binaryfile/binfile", 
    "-o this -a is -z specific -m kind -y of -kl arguments -i want " 
); 

Если я бегу с этим кодом,

ProcessBuilder pb = new ProcessBuilder("bash", 
    "-c", 
    "/User/me/path/to/Binaryfile/binfile" 
); 

Я получаю выполнение двоичного файла. Помните, что я использую Mac, и я хочу запустить двоичный файл с некоторыми конкретными аргументами этого. Извините, если мой английский плохой.

+0

Полный пример рассмотрен [здесь] (http://stackoverflow.com/a/5740673/230513). – trashgod

+0

im kinda new at unix console, его немного сложно понять, что они переходят в процесс-застройщик – AndreL

ответ

1

В этом бетоне example, передаются три аргумента:

  • "bash"
  • "-c"
  • "ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'"

Если вы не нуждаетесь в оболочке интерпретировать ваши аргументы, вероятно, можно сделать что-то например:

ProcessBuilder pb = new ProcessBuilder("/User/me/path/to/Binaryfile/binfile", 
    "-o xx.xxx.xx.xxx:xxxx", "-u xxxxx", "-p xxxx"); 
+0

"[2013-12-03 11:58:17] Неожиданные дополнительные аргументы командной строки [2013-12-03 11:58:17] Неожиданные дополнительные аргументы командной строки « Я получаю этот вывод И если я поместил это: ProcessBuilder pb = new ProcessBuilder("bash","-c",/User/me/path/to/Binaryfile/binfile,"-o http://xx.xxx.xx.xxx:xxxx" ,"-u xxxxx"," -p xxxxx");, выход: Ошибка открытия терминала: неизвестно. AndreL

+0

Я не понимаю, почему вы используете под-оболочку; см. обновленный пример. – trashgod

+0

У меня есть двоичный файл, и когда я запускаю его, мне нужно вставить некоторые аргументы в оболочку, и я хочу запустить двоичный файл с фиксированными аргументами с помощью java – AndreL