如何在没有shell脚本等待程序完成执行的情况下从shell脚本调用Java程序?

时间:2014-06-17 19:48:47

标签: java bash shell unix

#!/bin/bash 
JAVA_HOME="jdkpath"
CLASSPATH="JAR file path" . 
$JAVA_HOME/bin/java -cp $CLASSPATH JavaClass 
exit 0

我使用上面的shell脚本来调用我的Java程序,但我想确保一旦shell脚本调用Java程序,它就不会闲置并等待程序完成。我不知道该怎么做。我在一个在线论坛上看到我可以放一个“&”在我提供JAR文件路径的命令末尾的符号,但我不确定,因为我是shell脚本的新手。非常感谢所有的帮助。

2 个答案:

答案 0 :(得分:1)

在shell命令结束时,你可以把&amp ;.它使程序在子shell中运行。

java -cp /.../.../....jar ClassWithMain &

答案 1 :(得分:1)

添加&到最后将Java发送到后台。这意味着Java将在后台运行,shell脚本将继续运行。但是一旦shell脚本到达终点,它将等待Java退出之前完成。您必须取消java程序,然后脚本将退出并且java将继续运行。只需在运行jar文件的下方直接添加命令“disown”即可。