Heim  >  Artikel  >  Java  >  Wie starte ich eine Java AWT-Anwendung wie C# Application.Restart() neu?

Wie starte ich eine Java AWT-Anwendung wie C# Application.Restart() neu?

Linda Hamilton
Linda HamiltonOriginal
2024-11-07 08:32:03755Durchsuche

How to Restart a Java AWT Application like C# Application.Restart()?

Neustart einer Java-Anwendung

Frage:

Wie kann ich eine Java-AWT-Anwendung neu starten, die von einem angehängten Event-Handler initiiert wurde? auf eine Schaltfläche, die die Funktionalität von Application.Restart() in C# repliziert?

Antwort:

Ja, es ist möglich, eine Java-Anwendung neu zu starten. Hier ist eine Lösung:

public void restartApplication() {
    String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
    File currentJar = new File(MyClassInTheJar.class.getProtectionDomain().getCodeSource().getLocation().toURI());

    // Check if it's a jar file
    if (!currentJar.getName().endsWith(".jar")) {
        return;
    }

    // Build command: java -jar application.jar
    ArrayList<String> command = new ArrayList<>();
    command.add(javaBin);
    command.add("-jar");
    command.add(currentJar.getPath());

    ProcessBuilder builder = new ProcessBuilder(command);
    builder.start();
    System.exit(0);
}

Diese Methode funktioniert wie folgt:

  1. Java-ausführbare Datei suchen: Sie ruft die ausführbare Java-Datei ab (in diesem Fall die Java-Binärdatei). ).
  2. Anwendung identifizieren: Identifiziert die Anwendung, die in diesem Beispiel als JAR-Datei angenommen wird, mithilfe der bereitgestellten Klasse.
  3. Neustartbefehl erstellen: Es stellt einen Befehl zusammen, um das JAR mithilfe der Java-Binärdatei neu zu starten.
  4. Befehl ausführen: Der Befehl wird ausgeführt, wodurch die aktuelle Anwendung beendet und erneut gestartet wird.

Das obige ist der detaillierte Inhalt vonWie starte ich eine Java AWT-Anwendung wie C# Application.Restart() neu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn