在Java中执行Linux nodejs命令行

时间:2015-04-23 19:24:49

标签: java linux node.js bower

我在我的项目中使用Apache Commons Exec在操作系统(Linux和Windows)中运行bower命令,这在Windows中运行良好但在Linux中无法找到命令"亭子"谢谢你的帮助。

    String command="bower --allow-root";
    CommandLine commandline = null;
    if (isWindows()) {
        commandline = new CommandLine("cmd");
        commandline.addArguments(new String[] { "/c", command }, false);
    }
    if (isUnix()) {
        commandline = new CommandLine("/bin/bash");
        commandline.addArguments(new String[] { "-c", command }, false);
    }
    ExecuteCommandResponse executeCommandResponse = new ExecuteCommandResponse();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    DefaultExecutor exec = new DefaultExecutor();
    PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
    exec.setStreamHandler(streamHandler);
    exec.setWorkingDirectory(workingDirectory);
    try {
        exec.execute(commandline);
    } catch (Exception e) {

    }

1 个答案:

答案 0 :(得分:0)

bower是JavaScript文件,因此bash无法运行它。正确的代码

if (isUnix()) {
    commandline = new CommandLine("/usr/local/bin/node");
    commandline.addArguments(new String[] { "/usr/local/bin/bower","--allow-root"}, false);
}
相关问题