0

我需要从打印过滤器调用的 perl 脚本中打开 .app 文件。这个 perl 脚本做了很多其他的事情,但最后,我需要从一个文件夹中打开 .app。我在终端上尝试了“打开/Applications/abc.app”命令,它可以工作。我需要从 Perl 脚本做同样的事情。下面从 Perl 尝试过,但不起作用。知道问题出在哪里吗?也试过 - 打开“/Applications/abc.app”并打开(“/Applications/abc.app”);

错误是: 24/03/14 8:22:33.526 am open[5181]: spawn_via_launchd() failed, errno=54 label=[0x0-0xca0ca].abc path=/Applications/abc.app/Contents/MacOS/abc flags=0 : LaunchApplicationClient.cp #990 LaunchApplicationWithSpawnViaLaunchD() q=com.apple.main-thread

24/03/14 8:22:33.526 am open[5181]: spawn_via_launchd() failed, errno=54 label=[0x0-0xca0ca].EFI.PrintMessenger path=/Applications/abc.app/Contents/MacOS/abc flags =0

试图打开其他应用程序,如 chess.app 或 firefox.app。但同样的错误

4

1 回答 1

1

我只是写了一个小测试脚本:

use strict;
use warnings;

system qq(open -a Pages);
print qq(Yes, I'm such a fanboy, I have "Pages" on my system\n);

如果我的应用程序不在/Application目录中,我需要 tp 在我的应用程序名称前加上目录名称。该open命令采用.app后缀。如果我愿意,我可以添加它。这也将起作用:

system qq(open -a /Application/Pages.app);

但是,我需要-aopen命令知道我正在谈论打开应用程序并且它不是文件。请记住,这/Applications/Pages.app是一个目录,而不是文件。这就是为什么如果您不使用该-a参数,OS X open 命令将失败。

于 2014-03-21T13:27:44.547 回答