gpt4 book ai didi

objective-c - 执行终端命令

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:06 24 4
gpt4 key购买 nike

我想从我的 objective-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

编辑

我尝试使用此命令进行检查:

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

它仍然给我一个警告:

working directory doesn't exist.

最佳答案

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

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

然后更改您的 setLaunchPath: 调用以指向实际可执行文件的位置:

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

关于objective-c - 执行终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com