Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memulakan Semula Aplikasi Java AWT seperti C# Application.Restart()?

Bagaimana untuk Memulakan Semula Aplikasi Java AWT seperti C# Application.Restart()?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 08:32:03753semak imbas

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

Memulakan semula Aplikasi Java

Soalan:

Bagaimana saya boleh memulakan semula aplikasi Java AWT yang dimulakan oleh pengendali acara yang dilampirkan ke butang, mereplikasi kefungsian Application.Restart() dalam C#?

Jawapan:

Ya, adalah mungkin untuk memulakan semula aplikasi Java. Berikut ialah penyelesaiannya:

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

Kaedah ini beroperasi seperti berikut:

  1. Cari Java Executable: Ia mendapatkan java executable (dalam kes ini, java binary ).
  2. Kenal pasti Aplikasi: Ia mengenal pasti aplikasi, diandaikan sebagai fail jar dalam contoh ini, menggunakan kelas yang disediakan.
  3. Construct Restart Command: Ia memasang arahan untuk memulakan semula balang menggunakan perduaan java.
  4. Melaksanakan Perintah: Perintah itu dilaksanakan, menamatkan aplikasi semasa dan memulakannya semula.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Semula Aplikasi Java AWT seperti C# Application.Restart()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn