本帖最后由 alivefish0915 于 2013-11-12 16:17:13 编辑

解决方案 »

  1.   

    是不是在等待输出,是一段阻塞代码,建议Runtime.getRuntime.exec() 加上超时和trycatch。
      

  2.   

    刚才通过线程来处理了。分别处理Procee p的getInputStream和getError...代码可以继续执行其他的逻辑,但是线程还是阻塞,无法终止,或者不知道该已怎么样的方式来让线程终止
      

  3.   

    刚才通过线程来处理了。分别处理Procee p的getInputStream和getError...代码可以继续执行其他的逻辑,但是线程还是阻塞,无法终止,或者不知道该已怎么样的方式来让线程终止卡在哪一句上,发出来下,看看API。
      

  4.   

    刚才通过线程来处理了。分别处理Procee p的getInputStream和getError...代码可以继续执行其他的逻辑,但是线程还是阻塞,无法终止,或者不知道该已怎么样的方式来让线程终止卡在哪一句上,发出来下,看看API。
    sorry~加入线程的处理想法有点糟糕,具体问题就不再讨论(涉及线程的执行问题)。现在的问题的进入DEBUG模式,代码全部能跑完,但是main开启的jvm无法关闭,即便使用System.exec();而且每个流和Process都做了关闭处理。哎。。要下班了。。明天在一起研究吧。
      

  5.   

    先查看下进程中是否有tomcat,没有就不用执行关闭了
      

  6.   

    刚才通过线程来处理了。分别处理Procee p的getInputStream和getError...代码可以继续执行其他的逻辑,但是线程还是阻塞,无法终止,或者不知道该已怎么样的方式来让线程终止卡在哪一句上,发出来下,看看API。
    sorry~加入线程的处理想法有点糟糕,具体问题就不再讨论(涉及线程的执行问题)。现在的问题的进入DEBUG模式,代码全部能跑完,但是main开启的jvm无法关闭,即便使用System.exec();而且每个流和Process都做了关闭处理。哎。。要下班了。。明天在一起研究吧。
    原因已经找到。是执行开启tomcat的代码阻塞了,tomcat的窗口与jvm关联了。Process卡死在tomcat启动的窗口导致的。现在准备改用注册服务来处理。