如果从OSX App捆绑包运行,ProcessBuilder无法找到文件

时间:2017-05-03 16:49:28

标签: java macos processbuilder

我们的应用程序的OSX版本与ProcessBuilder有一个奇怪的问题。这是在我们切换到universalJavaApplicationStub时开始的。以前我们使用过AppBundlerTask。 注意:不能做一个示例类,因为您需要构建一个完整的mac应用程序包来查看此结果:

我们启动该流程的代码是:

log.debug("render: {}", Arrays.toString(myCommandLine.toArray()));
log.debug("render: dir={}", m_workingDir);
final ProcessBuilder processBuilder = new ProcessBuilder(myCommandLine);
processBuilder.directory(new File(m_workingDir));
final Process process = processBuilder.start();

并且日志输出如下所示:

render: [/Applications/EFI/Metrix/bin/cli/rasters, --saveasimg, --pagebox=MEDIABOX, --smoothing=All]
render: dir=/Applications/EFI/Metrix/bin/cli/

这导致栅格应用程序向日志抛出错误,表明它未从其安装目录运行。 (这是第二个日志行中的目录。)

似乎工作目录不是我在processBuilder.directory()调用中指定的目录。

有人可以解释发生了什么吗?

1 个答案:

答案 0 :(得分:0)

与应用程序供应商合作,我发现我现在需要在运行他们的应用程序之前执行“未设置的CFProcessPath”。