cari

Rumah  >  Soal Jawab  >  teks badan

怎么让一个java程序接收命令后重启

1 一个web程序部署在tomcat程序中,
怎么让程序接受重启命令后重启

高洛峰高洛峰2889 hari yang lalu516

membalas semua(3)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 09:31:42

    Anda boleh membuat perkhidmatan antara muka bebas dan melaksanakan skrip mula dan berhenti, supaya anda boleh mencapai kesan yang anda inginkan

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 09:31:42

    Gunakan java secara langsung untuk memanggil arahan sistem untuk memulakan semula tomcat
    Kodnya mungkin seperti ini:

    public static void runShell(final String cmd) throws IOException, InterruptedException {
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                        Runtime run = Runtime.getRuntime();
                        Process p = run.exec(cmd);
                        BufferedInputStream in = new BufferedInputStream(p.getInputStream());
                        BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
                        String lineStr;
                        while ((lineStr = inBr.readLine()) != null) {
                            logger.info(lineStr);// 打印输出信息
                        }
    
                        //检查命令是否执行失败。
                        if (p.waitFor() != 0) {
                            if (p.exitValue() == 1) {// 0表示正常结束,1:非正常结束
                                logger.error(cmd + "命令执行失败!");
                            }
                        }
                        inBr.close();
                        in.close();
                    } catch (Exception e) {
                        logger.error("调用系统命令失败!", e);
                    }
                }
            });
    
        }

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:31:42

    Memulakan semula program web tidak lebih daripada menamatkan proses, melaksanakan fungsi exit 4 sistem, dan kemudian melaksanakan kaedah utama untuk memulakan bekas Program ini mestilah bebas

    balas
    0
  • Batalbalas