private static void DownloadNewLauncher( ) {
        try {
            //progressCurr.setValue(0);
            String strPath = Utils.getWorkingDirectory() + File.separator+GlobalVar.LauncherFileName;
            
            File AppPath = new File(URLDecoder.decode(LauncherUpdater.class.getProtectionDomain().getCodeSource().getLocation().getPath(),"UTF-8"));

            URL connection = new URL(GlobalVar.DownloadClientRootURL+"/"+GlobalVar.LauncherFileName);
            HttpURLConnection urlconn;
            urlconn = (HttpURLConnection) connection.openConnection();
            urlconn.setRequestMethod("GET");
            urlconn.connect();
            int fileSize = urlconn.getContentLength();
            //Сверяем размер файла на сервере и локальную запись, не совпали? качаем новую версию
         if(urlconn.getResponseCode() != 404)
         {
            if(fileSize != readMD5File(strPath))
            {
                
                
                JOptionPane.showMessageDialog( null,
                    "Лаунчер будет автоматически обновлен",
                    "Обновлене",
                    JOptionPane.WARNING_MESSAGE);
                
                
            InputStream in = null;
            in = urlconn.getInputStream();
            OutputStream writer = new FileOutputStream(AppPath.getAbsolutePath());
            byte buffer[] = new byte[55000];
            int c = in.read(buffer);
            int dwnloaded =0;
            while (c > 0) {
                writer.write(buffer, 0, c);
                dwnloaded +=c;
                try{
                //progressCurr.setValue((int)((dwnloaded/1024)*100/fileSize));
                //progressCurr.setString("Скачивается "+GlobalVar.LauncherFileName + "  "+progressCurr.getValue()+"%  " +(dwnloaded/1024)+"/"+(fileSize/1024)+"Kb");

                }catch(ArithmeticException ae){
                   //И такое тоже бывает
                }
                c = in.read(buffer);
            }
            writer.flush();
            writer.close();
            in.close();
            
            JOptionPane.showMessageDialog( null,
                    "Лаунчер успешно обновлен\nПосле закрытия этого окна лаунчер будет закрыт",
                    "Обновлене успешно",
                    JOptionPane.INFORMATION_MESSAGE);
            
            writeMD5File(strPath, fileSize); //Записываем новый размер лаунчера т.к. обновились успешно
            System.exit(1);
            }
          }else{
         }
        } catch (IOException e) {
            JOptionPane.showMessageDialog( null,
                    "Ошибка обновления лаунчера\nПосле закрытия этого окна будет запущена текущая версия лаунчера",
                    "Обновлене не удалось",
                    JOptionPane.ERROR_MESSAGE);
            System.out.println(e);
        }
}