通过JAVA执行Fabric脚本

通过JAVA执行Fabric脚本,java,runtime,fabric,Java,Runtime,Fabric,我有一个简单的fab脚本,我想通过JAVA执行它: from __future__ import with_statement from fabric.api import * from fabric.contrib.console import confirm env.hosts = ['localhost'] def updatefile(): with shell_env(TERM='vt100'): with cd('/User

我有一个简单的fab脚本,我想通过JAVA执行它:

    from __future__ import with_statement
    from fabric.api import *
    from fabric.contrib.console import confirm
    env.hosts = ['localhost']

    def updatefile():
     with shell_env(TERM='vt100'):
    with cd('/Users/'):
    run("pwd")
    run("ls -l")

    def execute():
      updatefile()
当我从命令行执行这个脚本时,它可以工作:fab-f test.py执行,但我想通过java执行。试用

public class ExecuteScript {

@Test
public void testExecuteScript() throws NumberFormatException, IOException{

    StringBuffer output = new StringBuffer();
    Process p;
    try {
        p = Runtime.getRuntime().exec("fab -f src/test/resources/scripts/test.py execute");
        p.waitFor();
        BufferedReader reader = 
                new BufferedReader(new InputStreamReader(p.getInputStream()));

        String line = "";           
        while ((line = reader.readLine())!= null) {
            output.append(line + "\n");
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(output.toString());
}
}   

它不起作用。。看了文档中的java示例,链接都断了

环境,确保您正在使用您的环境。我建议您使用
virtualenv
,如下所示:

  • virtualenv.env
    (不要在您的src文件夹中执行此操作,如果有任何操作,它应该位于一个目录下,并且请不要将其签入您的源代码管理)
  • source.env/bin/activate
  • 然后安装您的依赖项:

  • pip安装结构
  • ???你还需要什么
  • 那么这是最重要的部分:


    /.env/bin/fab-f src/test/resources/scripts/test.py执行

    环境,确保您正在使用您的环境。我建议您使用
    virtualenv
    ,如下所示:

  • virtualenv.env
    (不要在您的src文件夹中执行此操作,如果有任何操作,它应该位于一个目录下,并且请不要将其签入您的源代码管理)
  • source.env/bin/activate
  • 然后安装您的依赖项:

  • pip安装结构
  • ???你还需要什么
  • 那么这是最重要的部分:

    /.env/bin/fab-f src/test/resources/scripts/test.py execute