9 Stimmen

Wie kann man Tomcat mit Java-Code starten und stoppen?

Wie kann man Tomcat mit Java-Code starten und stoppen?

17voto

Cloud Punkte 912

Sie können den Shutdown-Befehl an den Shutdown-Port senden, die beide im Root-Element der server.xml-Datei von Tomcat konfiguriert werden können.

Nach und nach:

Schritt 1

Konfigurieren Sie die Datei CATALINA_HOME/conf/server.xml wie folgt:

<Server port="8005" shutdown="myShutDownCommand">

Das Attribut port ist fakultativ. Wird es weggelassen, wird der Standardwert 8005 verwendet.

Der Wert für das Attribut shutdown kann beliebig sein. Dies sollte anderen nicht bekannt sein.

Schritt 2

Lassen Sie das Java-Programm den Shutdown-Befehl myShutDownCommand mit der Klasse java.net.Socket an den Shutdown-Port 8005 senden.

try { 
    Socket socket = new Socket("localhost", 8005); 
    if (socket.isConnected()) { 
        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
        pw.println("myShutDownCommand");//send shut down command 
        pw.close(); 
        socket.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
}

14voto

mindas Punkte 25933

Sie müssen Folgendes ausführen main Methode der org.apache.catalina.startup.Bootstrap mit dem Parameter "start" .

Sie benötigen außerdem folgende Dinge:

  • zu haben tomcat/bin/bootstrap.jar in Ihrem Klassenpfad;
  • -Dcatalina.base zeigen auf $TOMCAT_HOME
  • -Dcatalina.home zeigen auf $TOMCAT_HOME
  • -Djava.io.tmpdir auf ein temporäres Verzeichnis verweisen (normalerweise $TOMCAT_HOME/temp )

Ich habe auch -noverify nicht sicher, ob dies immer notwendig ist.

p.s. Es wäre auch schön, wenn Sie anfangen könnten, Antworten zu akzeptieren, Ihre derzeitige Rate ist 0/28.

9voto

jmj Punkte 232204

Sie können native Befehle mit java ausführen

String command = "c:\program files\tomcat\bin\startup.bat";//for linux use .sh
Process child = Runtime.getRuntime().exec(command);

0voto

Am Anonymous Punkte 79

Für Linux-Benutzer, die Java verwenden, versuchen Sie dies:

Runtime run = Runtime.getRuntime();
Process pr = run.exec("sh startup.sh", null, new File("filePath"));
filePathexample = /home/example/apache-tomcat-8.0.47/bin/

0voto

Michal Punkte 2183

Starten (und Beenden) eines eingebetteten Tomcat. Es ist gut dokumentiert, wie man das macht, zum Beispiel aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X