NSTask 启动路径错误 [重复]
Posted
技术标签:
【中文标题】NSTask 启动路径错误 [重复]【英文标题】:NSTask launch path error [duplicate] 【发布时间】:2012-10-17 16:19:01 【问题描述】:可能重复:NSTask launch path not accessible
任何想法为什么要调用这个,
NSTask *buildMTask = [[NSTask alloc] init];
[buildMTask setLaunchPath:@"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\\ Simulator.app/Contents/MacOS/iPhone\\ Simulator"];
[buildMTask launch];
结果
'启动路径不可访问'?
谢谢!
【问题讨论】:
你为什么要转义空格字符?它应该是文件的路径,因此不应转义空格 空格是否转义没有任何区别...同样的错误发生... ***.com/questions/3221432/… 是关于启动一个shell脚本,所以我不认为它是重复的。 您确定在这两种情况下都删除了 `\\` 吗?因为它可以在我的电脑上运行。 - 或者您正在构建沙盒应用程序? 【参考方案1】:NSString *appname = @"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator";
NSTask *aTask = [[NSTask alloc] init];
[aTask setLaunchPath:appname];
BOOL exists = [[NSFileManager defaultManager] isExecutableFileAtPath:[aTask launchPath]];
NSLog(@"%@ '%@'\n", exists ? @"Exists" : @"Does Not Exist", [aTask launchPath]);
[aTask launch];
工作正常,甚至记录可执行文件存在。删除可执行文件名称中的\\
- 全部删除。
我建议在尝试运行应用程序之前使用可执行文件存在检查。
【讨论】:
如果无法执行,那我们该怎么办呢?在运行时运行 chmod? NSTask 将可执行文件作为第一个选项,如果有问题的项目不是可执行文件,那么您应该问为什么。如果只是它是一个脚本并且它没有设置为可执行文件,那么按照这个问题被标记为重复的答案的建议。如果它在应用程序包中并且未标记为可执行文件,那么您的构建不正确。以上是关于NSTask 启动路径错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
NSTask 字符输出到 NSTextField 无缓冲作为连续流