shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面指令(只有java运行完,下面对数据的处理才有用)

举报 回答
shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面指令(只有java运行完,下面对数据的处理才有用)
问在线客服
扫码问在线客服
  • 回答数

    6

  • 浏览数

    3,111

举报 回答

6个回答 默认排序
  • 默认排序
  • 按时间排序

没找到满意答案?去问豆包AI智能助手
取消 复制问题
已采纳
调用java的时候不要挂在后台执行就可以了, 如果说你的java程序名叫 Test.class 或者 Test.jar

shell脚本里调用JAVA程序
#!/bin/sh
java Test.class ##或者java -jar Test.jar
stat=`sqlplus .......`
if [ $stat = **]
then
nohup sh single1.sh
fi

shell里的命令也是按顺序执行的,java调用没返回的时候是不会继续往下执行的
如果你调用java程序的时候,命令后面带了个 & 符,则这条命令是在后台执行的,shell会继续执行下一条命令
取消 评论
在你的shell中添加一条检查java程序运行状态的不就好了么,也不对程序整体结构造成多大的破坏。
看你脚本的设置,应该是一个demon进程,本身不就是一个不断检查状态的过程么
取消 评论
如果你正在使用bash shell,可以利用条件语句结合trap函数来实现这个需求。设置一个信号处理器,在JAVA退出时自动执行后续任务,示例代码为:`java your_java_program && then_do_something_with_data || { echo Java failed, processing data anyway...; then_do_something_with_data; }`
取消 评论
通过管道(pipe)将输出重定向到子shell,在JAVA程序后添加一个管道,并在末尾追加处理数据的命令,如:`java your_java_program | while read -r line; do process_data $line; done`
取消 评论
使用bash的wait命令等待JAVA进程结束,再继续执行其他操作。写法如下:`java your_java_program; wait; then_do_something_with_data`
取消 评论
在shell脚本中,你可以使用`&`符号将JAVA程序放在后台运行,然后执行你的后续指令。例如:`java your_java_program & then_do_something_with_data`
取消 评论
ZOL问答 > shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面指令(只有java运行完,下面对数据的处理才有用)

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?