Выполнить команду терминала - PullRequest
3 голосов
/ 14 декабря 2011

Я хочу запустить команду терминала из моего проекта target-c.

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

cd /Users/user/Desktop/project/;ant release

Теперь я использовал это в Objective-C-проект:

NSTask *task = [NSTask new];
[task setLaunchPath:@"cd /Users/user/Desktop/project/;ant"];
[task setArguments:[NSArray arrayWithObjects:@"release", nil]];

NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput:pipe];

[task launch];

NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile];

[task waitUntilExit];
[task release];

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog (@"got\n%@", string);
[string release];

и после [task launch]; я получаю ошибку:

launch path not accessible

Edit

Я пытался использовать эту команду для проверки:

[task setCurrentDirectoryPath:@"/Users/user/Desktop/Czech/"];
[task setLaunchPath:@"/bin/ls"];

и это все еще дает мне предупреждение:

working directory doesn't exist.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2011

Вам нужно установить рабочий каталог по-другому:

[task setCurrentDirectoryPath:@"/Users/user/Desktop/project"];

Затем измените ваш setLaunchPath: вызов, чтобы указать местоположение фактического исполняемого файла:

[task setLaunchPath:@"/usr/bin/ant"];
0 голосов
/ 14 декабря 2011

Хм, вы пытаетесь выполнить строку оболочки здесь.

Попробуйте сначала изменить каталог (на /Users/blabla), а затем введите команду ant.Я предполагаю, что программа пытается найти команду с именем cd /Users/user/Desktop/project/;ant.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...