Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перезапуск приложения 
:(
    Опции темы
Grizli
Дата 27.6.2012, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 30.3.2012

Репутация: нет
Всего: нет



Собственно я написал для своего приложения перезапуск с установкой ОЗУ для java, на Windows работает, а вот на линукс вообще ничего не происходит!

Код

public static void reboot(String memory) {
        try {
            String pathToJar;
            File jar = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getFile());
            try {
                pathToJar = jar.getCanonicalPath();
            } catch (IOException e1) {
                pathToJar = jar.getAbsolutePath();
            }
            try {
                pathToJar = URLDecoder.decode(pathToJar, "UTF-8");
            } catch (java.io.UnsupportedEncodingException ignore) { }
            
            ArrayList<String> params = new ArrayList<String>();
            if (PlatformUtils.getPlatform() == PlatformUtils.OS.windows) {
                params.add("javaw"); // под Шиндоус
            } else {
                params.add("java"); // Linux 
            }
            params.add(memory);
            params.add("-jar");
            params.add(pathToJar + "\\Launcher.jar");
            
            params.addAll(Arrays.asList(args_temp));

            ProcessBuilder pb = new ProcessBuilder(params);
            try {
                Process process = pb.start();
            if (process == null) {
                throw new Exception("Ошибка запуска");
            }
            } catch (IOException e) {
                System.out.println("Невозможно запустить");
            }
            System.exit(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


И да, через -cp не вариант! 
PM MAIL   Вверх
Vasay
Дата 27.6.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Grizli

Код

pathToJar + "\\Launcher.jar"


В обозначении пути принято использовать прямой слеш "/".  Обратный слеш это фишка винды. Использование прямого слеша универсально и для винды и для *nix.   Обратный, насколько я знаю в *nix не воспринимается.  

Т.е. попробуйте:
Код

pathToJar + "/Launcher.jar"



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Pretorian
Дата 27.6.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 9.12.2011
Где: нигде

Репутация: 1
Всего: 1



а не лучше вместо слеша использовать System.getProperty("file.separator")?
Код

pathToJar + System.getProperty("file.separator") + "Launcher.jar"


Это сообщение отредактировал(а) Pretorian - 27.6.2012, 15:53
PM   Вверх
Stolzen
Дата 27.6.2012, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Java одинаково проглатывает как прямой, так и обратный слеши.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Vasay
Дата 27.6.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(Stolzen @  27.6.2012,  16:25 Найти цитируемый пост)
Java одинаково проглатывает как прямой, так и обратный слеши.


Как сейчас не знаю, но обратный под никсами не проглатывала - лично сталкивался (во времена то ли 1.3 то ли 1.4).

"/" - с File API работает и в *nix и в win. 

Это сообщение отредактировал(а) Vasay - 27.6.2012, 16:57


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
jk1
Дата 27.6.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Как сейчас не знаю


И сейчас точно также. Не знаю, что конкретно Stolzen имел ввиду, но слэш в java имеет значение. И кроссплатформенным будет только способ с проперти, указанный выше по треду.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Vasay
Дата 27.6.2012, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(jk1 @  27.6.2012,  16:56 Найти цитируемый пост)
И кроссплатформенным будет только способ с проперти, указанный выше по треду.


В случае с File API - "/" тоже кросплатформенно.  Прямой слэш автоматически переводится в нужный разделитель. Это я читал в доках к File API


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
jk1
Дата 27.6.2012, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Это я читал в доках к File API 


А причем тут File API? Топикстартер передает строку в ProcessBuilder


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Vasay
Дата 27.6.2012, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата(jk1 @  27.6.2012,  17:24 Найти цитируемый пост)
А причем тут File API? Топикстартер передает строку в ProcessBuilder


А, ну да smile надо спросить у автора - работает в винде с "/" или нет ? 

Впринципе может и не работать. Т.к. за то что работает "/" отвечает File преобразуя строку в абстрактный платформонезависимый путь. 

В случае же  запуска прцесса  "команда параметр_с_путем_к_файлу" если в пути будет не тот разделитель может быть и ошибка. Хотя, в случае, если команда - это "java -jar  параметр_с_путем_к_файл", думаю, путь пройдет через тот же механизм и java запустит нужный jar.

Это сообщение отредактировал(а) Vasay - 27.6.2012, 18:15


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Grizli
Дата 27.6.2012, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 30.3.2012

Репутация: нет
Всего: нет



Всё отлично работает, спасибо!  smile 
Решено же установил!

Это сообщение отредактировал(а) Grizli - 27.6.2012, 21:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.