」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何像 C# 中的 Application.Restart() 一樣重新啟動 Java 應用程式?

如何像 C# 中的 Application.Restart() 一樣重新啟動 Java 應用程式?

發佈於2024-11-19
瀏覽:383

How Can I Restart a Java Application Like Application.Restart() in C#?

重新啟動Java 應用程式:綜合解決方案

重新啟動Java 應用程式:綜合解決方案

在各種場景中都會出現重新啟動Java 應用程式的需要,例如當事件處理程序關閉時觸發以啟動重新啟動。本文深入探討了重新啟動 AWT 應用程式的實用方法,反映了 C# 中 Application.Restart() 的功能。

重生技術

  1. 重新啟動 Java應用程式時,採用了涉及多個步驟的細緻方法。如下所述,這些步驟可確保無縫重新啟動:
  2. 定位Java 可執行檔: 此演算法識別Java 執行檔的路徑,該路徑充當啟動Java 可執行檔案的引擎。 application.
  3. 識別應用程式: MyClassInTheJar 類別用於確定包含以下內容的jar 檔案的位置application.
  4. 製作重新啟動指令:建立一個精心建構的命令,由java 二進位(或必要時的替代啟動器)和jar 檔案的路徑組成。
呼叫重新啟動:

執行精心設計的命令,有效終止正在運行的應用程式並同時啟動其restart.

範例程式碼

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

    if (!currentJar.getName().endsWith(".jar")) {
        return;
    }

    final ArrayList command = new ArrayList();
    command.add(javaBin);
    command.add("-jar");
    command.add(currentJar.getPath());

    final ProcessBuilder builder = new ProcessBuilder(command);
    builder.start();
    System.exit(0);
}
下面的Java 程式碼範例了restartApplication() 方法,它體現了上述技術:

public void重新啟動應用程式(){ Final String javaBin = System.getProperty("java.home") File.separator "bin" File.separator "java"; 最終檔案 currentJar = new File(MyClassInTheJar.class.getProtectionDomain().getCodeSource().getLocation().toURI()); if (!currentJar.getName().endsWith(".jar")) { 返回; } 最終 ArrayList 指令 = new ArrayList(); 命令.add(javaBin); 命令.add("-jar"); command.add(currentJar.getPath()); 最終 ProcessBuilder 建構器 = new ProcessBuilder(命令); 建構器.start(); 系統.退出(0); }

總結

How Can I Restart a Java Application Like Application.Restart() in C#? 
重新啟動Java 應用程式可以透過一個有條理的過程來實現,該過程包括識別Java 可執行檔、確定應用程式的位置、建置重新啟動命令以及執行它。透過採用這種方法,開發人員可以賦予應用程式無縫重新啟動的能力,就像 C# 開發人員使用 Application.Restart() 所做的那樣。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3