根据我在Stackoverflow和Internet上其他页面上看到的代码,我创建了一种在我在系统中运行进程时停止和启动tomcat的方法,因为我需要清理OS中的内存,System.gc()但是仍然不足以释放内存,这是代码:
System.gc()
全局声明:
private String server = "localhost";
停止启动tomcat的方法:
public void tomcat(){ try{ Socket s = new Socket(server,8005); if(s.isConnected()){ PrintWriter print = new PrintWriter(s.getOutputStream(),true); print.println("SHUTDOWN"); /*Command to stop tomcat according to the line "<Server port="8005" shutdown="SHUTDOWN">" in catalina_home/conf/server.xml*/ print.close(); s.close(); } Runtime.getRuntime().exec(System.getProperty("catalina.home")+"\\bin\\startup.bat"); /*Instruction to run tomcat after it gets stopped*/ }catch (Exception ex){ ex.printStackTrace(); } }
启动tomcat的代码行运行完美,但是没有停止它的说明,因为当我实例化套接字时,会显示以下消息:Connection refused: connect。
Connection refused: connect
我该如何解决?或者,还有另一种方法来停止tomcat?
提前致谢。
public static void shut_server(String lien) { try { Process child = Runtime.getRuntime().exec(lien+"/shutdown.sh"); System.out.println("Serveur est atteins"); } catch (IOException ex) { Logger.getLogger(Installation.class.getName()).log(Level.SEVERE, null, ex); System.out.println("erreur de demarrage"); } }
lien = 例如 ,您的tomcat bin文件的路径 -/home/zakaria/Téléchargements/apache-tomcat-8.0.21/bin
/home/zakaria/Téléchargements/apache-tomcat-8.0.21/bin