我最近买了一台Macbook Air,它现在正在运行Mountain Lion,但是我在运行该公司的项目时遇到了一些问题,在工作中使用mac的唯一其他人在他的Macbook Pro上运行Lion并且他没有这样的问题。 正如标题所说,在命令行上编译项目没有问题,但是当我尝试在IntelliJ中编译它时,我得到了这个错误
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (requireJS-Optimizer) on project MarfeelTouch: Command execution failed. Cannot run program "node" (in directory "/Users/pedrompg/Documents/Marfeel/MarfeelTouch"): error=2, No such file or directory -> [Help 1]
当我从命令行编译并尝试运行程序
时,也会出现问题Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Cannot run program "phantomjs" (in directory "/Users/pedrompg/Documents/Tenants/vhosts/discoverint"): error=2, No such file or directory
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232) ~[na:1.6.0_35]
at java.util.concurrent.FutureTask.get(FutureTask.java:91) ~[na:1.6.0_35]
at com.marfeel.pressSystem.impl.SectionPressImpl.getAllItemsFromSectionFeeds(SectionPressImpl.java:137) ~[MarfeelPressSystem-1.0.jar:na]
... 29 common frames omitted
似乎我无法从项目内部运行任何命令行程序
这是phantomJS调用的方式:
private Process buildProcess() throws IOException {
Process process;
String[] invocationCmd = getInvocationCmd();
if (executionDirectory != null) {
if (LOG.isDebugEnabled()) {
LOG.info("Invoking PhantomJS with {} in {}.", Arrays.toString(invocationCmd), executionDirectory);
}
process = Runtime.getRuntime().exec(invocationCmd, null,
new File(executionDirectory));
} else {
if (LOG.isDebugEnabled()) {
LOG.info("Invoking PhantomJS with {} in {}.", Arrays.toString(invocationCmd));
}
process = Runtime.getRuntime().exec(invocationCmd, null);
}
return process;
}
getInvocationCmd()返回以下数组
[phantomjs,--load-images=no,--disk-cache=yes,--max-disk-cache-size=1048576,/Users/pedrompg/Documents/Marfeel/MarfeelHub/target/webapp/WEB-INF/classes/whiteCollar.js,marca/marca.js,http://www.marca.com/]
不知道我是否留下任何相关信息 我们在项目中使用Maven,tomcat 7,nodeJS,phantomJS 1.5,nginx 1.2.4,java 1.6.0_35
希望有人可以提供帮助,我真的很担心这一点,已经浪费了2天试图解决这个问题。
提前致谢
答案 0 :(得分:4)
当您使用Mac时,它很可能与环境有关。请注意,在Mac GUI应用程序上不会继承终端环境变量,因此如果您已调整PATH
变量并且命令在终端中有效,则当您尝试从其他应用程序运行时它将无效。
有关此Mac功能的信息,请参阅related questions。注意second link,Mountain Lion对环境变量有不同的行为。
验证问题的最简单方法是解决问题的方法是从终端运行IntelliJ IDEA:
open -a /Applications/IntelliJ\ IDEA\ 11.app/
这样终端环境将传递给IDEA,您可以从终端运行的命令也将从IntelliJ IDEA运行。