Maison  >  Article  >  Java  >  Comment redémarrer une application Java AWT comme C# Application.Restart() ?

Comment redémarrer une application Java AWT comme C# Application.Restart() ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 08:32:03750parcourir

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

Redémarrage d'une application Java

Question :

Comment puis-je redémarrer une application Java AWT initiée par un gestionnaire d'événements attaché à un bouton, répliquant la fonctionnalité de Application.Restart() en C# ?

Réponse :

Oui, il est possible de redémarrer une application Java. Voici une solution :

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);
}

Cette méthode fonctionne comme suit :

  1. Localiser l'exécutable Java : Elle récupère l'exécutable java (dans ce cas, le binaire java ).
  2. Identifier l'application : Il identifie l'application, supposée être un fichier jar dans cet exemple, à l'aide de la classe fournie.
  3. Commande de redémarrage de construction : Il assemble une commande pour redémarrer le pot à l'aide du binaire Java.
  4. Exécuter la commande : La commande est exécutée, mettant fin à l'application en cours et la redémarrant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn