restart برنامه نوشته شده با جاوا

restart برنامه نوشته شده با جاوا : بعضی وقت ها نیاز هست برنامه restart بشه مثلا وقتی که آپدیتی را از اینترنت دریافت میکنه و یا وقتی که یک پلاگین جدید نصب میکنید(البته اگر از OSGI استفاده کنید نیازی به restart نیست) به هر حال هیچ راه ساده ای نیست مگر از دستورات خط فرمان استفاده کنید که در جاوا امکانات خوبی برای این کار وجود داره.

روش کار ساده است باید :

  • باید به برنامه java در jre دسترسی داشته باشید (منظور بودن مسیر جاوا در متغییر محیطی path است) تا بتونید برنامه ای در خط فرمان رو اجرا کنید.
  • باید مسیر jar برنامه رو بدست بیاریم. (در این پست در موردش توضیح داده ام).
  • به عنوان یک دستور خط فرمان و از طریق ProcessBuilder اجرا کنیم:  java -jar app.jar
  • جدا کننده مسیر در ویندوز ” \ ” و در گنو/لینوکس و یونیکس ” /”  است مطمئن ترین روش برای حفظ استقلال از سکو برنامه استفاده از File.separator می باشد.

یه متد که در سایت stackoverflow.com پیدا کردم به درستی این کار انجام میده:


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

  /* is it a jar file? */
  if(!currentJar.getName().endsWith(".jar"))
    return;

  /* Build command: java -jar application.jar */
  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);
}
restart برنامه نوشته شده با جاوا
restart برنامه نوشته شده با جاوا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.