【问题标题】:Calling consecutive java tasks in a shell script在 shell 脚本中调用连续的 java 任务
【发布时间】:2010-06-16 19:09:39
【问题描述】:

这可能是一个初步的问题,但没有现成的答案。

我想创建一个连续调用 3 个任务的 shell 脚本,但要等到上一个任务完成。

像这样:

一个。通过 ant 调用第一个 Java 程序 湾。调用第三方 Java 应用程序 C。通过ant调用第三个Java程序

我想知道是否有办法检查并确保 a.在 b 之前完成。被称为 b 也是一样的。和 c。

谢谢

【问题讨论】:

    标签: java command-line ant task


    【解决方案1】:

    默认情况下,ant 任务发生在前台,因此在每个 ant 任务完成之前,您的脚本不会继续执行。如果你想要相反的行为,你只需要搞砸事情:所有三个任务同时发生

    【讨论】:

    • 谢谢 Micheal,我会尽力回报。
    【解决方案2】:
    java some.package
    
    if [ $? -ne 0 ]; then exit -1; fi;
    
    java some.other.package
    

    默认情况下,脚本内的调用是连续的。 如果第一次java执行'some.package'没有返回0,正常的退出代码,脚本会以-1退出而不执行'some.other.package'

    【讨论】:

      【解决方案3】:

      假设您在 *nix shell 中工作,想到的一个简单解决方案是使用 && 运算符按顺序执行所有三个命令:

      
      #!/bin/sh
      ant task -f build.xml && java org.mycompany.app && ant anothertask -f buld2.xml
      

      && 操作符使得

      [...] 每个命令依次执行,前提是前一个命令的返回值为真(零)。在第一个 false(非零)返回时,命令链终止(第一个返回 false 的命令是最后一个执行 1)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        相关资源
        最近更新 更多