执行一个terminal命令

我想从我的objective-c项目运行一个terminal命令。

当我从terminal运行时,我使用:

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 

编辑

我试图用这个命令来检查:

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

它仍然给我一个警告:

 working directory doesn't exist. 

Solutions Collecting From Web of "执行一个terminal命令"

您需要以不同的方式设置工作目录:

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

然后改变你的setLaunchPath:调用指向实际可执行文件的位置:

 [task setLaunchPath:@"/usr/bin/ant"]; 

呃,你试着在这里执行一个shell行。

先尝试并更改目录(到/Users/blabla ),然后发出你的ant命令。 我的猜测是程序试图找到一个名为cd /Users/user/Desktop/project/;ant