Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Alex_P97
13 / 13 / 6
Регистрация: 13.05.2014
Сообщений: 146
1

Обновление *.jar

30.06.2014, 21:33. Просмотров 497. Ответов 0
Метки нет (Все метки)

Есть Java проект. Иногда() выпускаются обновления. При скачивании новой Jar надо заменить старую.

Была идея такова: 1. скачиваем обновление 2. скидываем во временную папку скрипт-заменялку(заменяем старую на новую Jar) 3. профит

появилась проблема с этим(вторым) скриптом при запуске скрипта(jar мини проектика) этим: "Process p = Runtime.getRuntime().exec("...");" или ProcessBuilder'ом и последуещем закрытии родительского процесса(тоесть старой Jar) закрывается и скрипт(а прока Jar открыта в Java.exe нельзя удалять\записывать этот файл) и тем самым я не могу запустить скрипт и заменить устаревшую Jar

помогите или подскажите как запустить скрипт или как нормально заменить старую на новую Jar

ps программа ожидается кросплатформенная так что не пишите мне типа: "сделай *.bat файл с содержимым del <...> \n move <...> <...> \n del %0 /f"


Код скрипта(реплейсера)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package ru.alexp.game.gc;
 
import java.io.File;
import java.io.IOException;
 
/**
 *
 * @author Александр
 */
public class loader {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
        File tmpFile;
        File mainFile;
 
        if (args.length != 2) {
 
            return;
 
        } else {
 
            tmpFile = new File(getTmpDir(), args[0]);
            mainFile = new File(getTmpDir(), args[1]);
        }
 
        System.out.println("Wait 3 sec ...");
 
        try {
 
            Thread.sleep(3000);
 
        } catch (InterruptedException e) {
        }
 
        System.out.println("Ok. Let's go!");
 
        mainFile.delete();
        tmpFile.renameTo(mainFile);
 
        exec(mainFile);
    }
 
    static File getTmpDir() {
 
        String AppData = System.getenv("APPDATA");
        String MainDir = ".gc" + File.separator + "temp";
        File AppDir;
 
        if (AppData != null) {
 
            AppDir = new File(AppData, MainDir);
 
        } else {
 
            AppDir = new File(System.getProperty("user.home", "."), MainDir);
        }
 
        return AppDir;
    }
 
    static void exec(File file) {
 
        // как правильно написать ?
        try {
 
            Process p = Runtime.getRuntime().exec("java -jar " + file.getAbsolutePath());
 
        } catch (IOException ex) {
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 21:33
Ответы с готовыми решениями:

Jar внутри jar
Можно ли сохранить jar внутри другого jar и использовать его? Нужно опять же...

Jar фаил
как в еклипсе сохранить прогу в jar формате?? Добавлено через 49 минут я...

Jar в ЕХЕ
Помогите с проблемой ,нужно конвертировать jar в ехе и при этом скрыть класы от...

Упаковка в jar
Здравствуйте! Создав приложение, хочется поместить его в один исполняемый jar...

Формирование Jar
В java и Intellij IDEa, соответственно, я новичок. Столкнулся с проблемой. Мне...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 21:33

Из Jar в Exe
Добрый день. Посоветуйте, пожалуйста, как перекомпилировать/переделать jar...

Не упаковывается корректно jar
Доброе время суток... Мучаюсь со следующим: Exception in thread &quot;main&quot;...

Запуск jar на исполнение
Возникла следующая трудность: Пакую программу в jar, запускаю с командной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru