如标题所示:
 我在linux下,用一个java类启动一个已经打成jar包的工程,核心代码如下:
  Process process = Runtime.getRuntime().exec("java -jar /home/proct.jar");这样的话,整个jar包可以顺利执行,但是如果我在这句代码后面,让该java类休眠的话,jar包也不运行了,代码如下:
Process process = Runtime.getRuntime().exec("java -jar /home/proct.jar");
Thread.sleep(5000);请问这是怎么回事?

解决方案 »

  1.   

    我的理解是: 你都让线程休眠了还怎么继续执行整个jar包?所以导致jar包执行不下去了
      

  2.   

    应该不是在同一个线程吧,在休眠期间,我将调用类强制停止,jar包又开始运行了,我现在需要将调用类休眠,又要在调用类休眠期间,jar能够运行下去,有没有好的方法?
      

  3.   

    估计jar里的东西还没运行起来就sleep了,你只有在外面监听jar里的状态了
      

  4.   

    你要干嘛,等待那个jar的运行结束?
    process.waitFor(); 返回errorcode
      

  5.   

    我详细描述一下我的情况:
       我现在做一个集中备份的项目,有一个进程是负责拉起其它进程的,如系统监控进程拉起调度进程,调度进程负责拉起下载进程、生命周期管理等一系列的进程   我现在的问题是,系统进程拉起调度进程的时候,因为系统监控进程运行一次的周期很短,刚刚拉起调度进程,系统监控进程就开始休眠了,而这时调度进程才刚刚开始解析完spring的配置文件就跟着系统监控进程休眠而停止运行了。   本来如果系统监控进程停止运行,调度进程就能够运行下去,但是现在系统监控是在一个while(true){}的无限循环里,所有不会停止,那就相当于调度进程永远都执行不了了!   有没有哪位高手遇过同样的情况?
      

  6.   

    我在linux下执行完命令 "java -jar SFTServer.jar &" 后把terminate端口给关掉了,还会继续执行吗?
    请知道的各位能快点给出恢复,本人挺急切知道这个问题的答案。谢谢了!