首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IntelliJ中执行程序/编译时出错,命令行中没有错误

在IntelliJ中执行程序/编译时出错,命令行中没有错误
EN

Stack Overflow用户
提问于 2012-09-29 16:15:52
回答 1查看 2.5K关注 0票数 3

我最近买了一台Macbook Air,它现在运行的是Mountain Lion,但我在运行公司的项目时遇到了一些问题,唯一一个工作时使用mac的人在他的Macbook Pro上运行Lion,他没有这样的问题。正如标题所说,在命令行上编译项目没有问题,但是当我尝试在IntelliJ中编译它时,我得到了这个错误

代码语言:javascript
复制
[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]

当我从命令行编译它并尝试运行该程序时,也会出现此问题

代码语言:javascript
复制
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调用的方式:

代码语言:javascript
复制
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()返回以下数组

代码语言:javascript
复制
[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,tomcat7,nodeJS,phantomJS 1.5,nginx 1.2.4,java 1.6.0_35

希望有人能帮上忙,我真的很担心这个问题,我已经浪费了2天的时间来解决这个问题。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-29 16:48:54

由于您使用的是Mac,这很可能是与环境有关的问题。请注意,在Mac应用程序不继承终端环境变量,因此,如果您已调整PATH变量和命令从终端工作,它将不会工作时,您尝试从其他应用程序运行。

请参阅有关此Mac功能的related questions。注意second link,Mountain Lion对环境变量有不同的行为。

验证情况和解决问题的最简单方法是从终端运行IntelliJ IDEA:

代码语言:javascript
复制
open -a /Applications/IntelliJ\ IDEA\ 11.app/

这样,终端环境将被传递到IDEA,您可以从终端运行的命令也将从IntelliJ IDEA运行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12651107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档