這裡也都有log.error(errInfo);記錄啊
能知道是在哪句執行時停滯了嗎?

解决方案 »

  1.   


    现在可以证明,就是在执行
    su - oracle -c "nohup /home/oracle/cmd.sh > /home/oracle/cmd.sh.log &"
    这句的时候没有转后台执行,导致这句命令需要等待cmd.sh这个文件执行完成后才返回结果
    大家帮忙分析下
      

  2.   

    命令本身并没有报错,只是没有转后台而已,所以logger.error(errinfo)获取不到报错信息
      

  3.   

    那重點研究這一句及其上下文
    su - oracle -c "nohup /home/oracle/cmd.sh > /home/oracle/cmd.sh.log &"你說的命令本身沒錯,那在測試環境執行成功,而產品環境執行失敗,這兩者有什麽區別呢
    不通過java,直接在產品環境的linux下能運行這句嗎?
      

  4.   

    直接运行可以,通过JAVA调用就不行
      

  5.   

    那研究下測試環境爲什麽通過java調就可以呢,測試環境多了點什麽還是少了點什麽
      

  6.   

    su - oracle -c "nohup /home/oracle/cmd.sh > /home/oracle/cmd.sh.log 2>&1 &把错误流和标准输出流合并输入到日志文件中,这样就行了
    这屁问题搞了我半个月!!
      

  7.   

    你把你的shell字符串转成字符串数组传到java调用程序中试试