解决process.waitFor()阻塞
private static void exeBat(){Process p = null; try { p = Runtime.getRuntime().exec("tts.bat"); //获取进程的标准输入流 final InputStream is1 = p.getInputStream(); //获取进城的错误流 final InputStream is2 = p.getErrorStream(); //启动两个线程,一个线程负责读标准输出流,另一个负责读标准错误流 new Thread() { public void run() { BufferedReader br1 = new BufferedReader(new InputStreamReader(is1)); try { String line1 = null; while ((line1 = br1.readLine()) != null) { if (line1 != null){} } } catch (IOException e) { e.printStackTrace(); } finally{ try { is1.close(); } catch (IOException e) { e.printStackTrace(); } } } }.start(); new Thread() { public void run() { BufferedReader br2 = new BufferedReader(new InputStreamReader(is2)); try { String line2 = null ; while ((line2 = br2.readLine()) != null ) { if (line2 != null){} } } catch (IOException e) { e.printStackTrace(); } finally{ try { is2.close(); } catch (IOException e) { e.printStackTrace(); } } } }.start(); p.waitFor(); p.destroy(); System.out.println("tts退出=========================================="); } catch (Exception e) { try{ p.getErrorStream().close(); p.getInputStream().close(); p.getOutputStream().close(); }catch(Exception ee){} } }