2015-11-15 3 views
3

Я пытаюсь запустить собственное консольное приложение с параметрами. Приложение написано быстрым языком и для работы требуется один параметр извне. В коде я получаю первый параметр таким образом: Process.arguments[1] (параметр 0 - путь к приложению).OS X. Как запустить консольное приложение с параметрами?

От терминала я бегу работы: open MyApp --args test_argument

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

Кто-нибудь знает, что я делаю неправильно? Может, я пропущу параметр неправильно? Или получить не правильно? Благодарю.

+1

'Process.arguments [1]' является правильным для получения первого аргумента, хотя это будет врезаться с индексом массива вне диапазона, если вы не передадите никаких аргументов. Попробуйте отказаться от 'open' и просто запустите его как' MyApp test_argument'. – vacawama

+0

@vacawama Я получаю -bash: MyApp: команда не найдена –

+1

Вам нужно указать путь к приложению. Если он находится в вашем текущем каталоге './MyApp test_argument'. – vacawama

ответ

2

Process.arguments[1] является правильным для доступа первый аргумент, но будьте осторожны, потому что это приведет к краху с фатальной ошибки: индекс массива вне диапазона если вы не передаете никаких аргументов. Прежде чем обращаться к Process.arguments[1], вы должны сначала проверить, есть ли Process.arguments.count > 1.

Ваша проблема заключается в том, как вы запускаете свое приложение. Вам просто нужно указать имя приложения, а затем любые аргументы:

MyApp test_argument 

Если MyApp не в вашем $PATH или в текущем каталоге, он не будет найден. Вы можете отредактировать ~/.bash_profile, чтобы добавить дополнительный путь к $PATH. Этот файл выполняется при каждом открытии нового терминала. Чтобы выполнить его после того, как вы только что отредактировали его, введите . ~/.bash_profile.

Например, если вы храните ваши приложения в вашем ~/Documents каталоге, редактировать ~/.bash_profile и добавьте следующую строку:

export PATH=$PATH:~/Documents 
Смежные вопросы