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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить запуск ... ... программы болше одного раза? 
:(
    Опции темы
azz
  Дата 24.5.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Как запретить запуск  программы болше одного раза? 
PM MAIL   Вверх
batigoal
Дата 24.5.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



В пределах одной JVM - с помощью статических полей. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
d_k
Дата 24.5.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Установить системное свойство и проверять при запуске установлено оно или нет. Если да - то отлуп. Вариантов много: временные файлы, сокеты...  

Это сообщение отредактировал(а) d_k - 24.5.2006, 15:44
PM MAIL   Вверх
Samuil
Дата 24.5.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



А по подробней насчет "статических полей"  полей можно? Просто вопрос действительно стоящий 


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
batigoal
Дата 24.5.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(Samuil @  24.5.2006,  19:09 Найти цитируемый пост)
А по подробней насчет "статических полей"  полей можно? Просто вопрос действительно стоящий  

Как вариант - в главный класс своего приложения добавляешь static-поле, значение которого меняешь при запуске. Вот так:

Код

class Main
{
  private static boolean isStarted = false;
  ...
  public static void main(String[] args)
  {
    isStarted = true;
    ....
  }
}

При выходе из приложения эту переменную надо сбрасывать обратно в false.

Повторяю, это будет корректно работать в том случае, если все копии приложения запускаются под одной JVM (точнее - в рамках одного ClassLoader'a). 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Pantein
Дата 24.5.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java developer



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

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



или можно так:

Код


import java.util.prefs.Preferences;

class Main{

        private Preferences pref;

        public static void main(String[] args){
    
            pref = Preferences.systemNodeForPackage(Puzzle.class);
            int count = pref.getInt("число вызовов программы",0);
            count++;
            if(count == 1)
                  pref.putInt("число вызовов программы", 1);
            else System.exit(0);

            ...............................

            pref.putInt("число вызовов программы",0);
    }
}


правда есть проблема, если убить java-прооцесс ручками во время выполнения программы, то получится, что запись в реестре не будет исправлена и при последующем запуске программа будет всегда думать, что она уже запущена - дело исправляется либо патчиком, который надо будет запустить в такой ситуации и он будет исправлять значение, либо самому ручками в реестре вытереть созданный ключик с неправильным параметром, но это не так уж и сложно smile     

Это сообщение отредактировал(а) Pantein - 24.5.2006, 20:08
PM MAIL WWW   Вверх
Samuil
Дата 24.5.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



м... Хорошее решение Спасибо smile

Добавлено @ 21:03 
Вот у меня вопросик припасся : Как в java можно узнать путь к операционной системе? Может через System.getProperty("_что здесь должно быть_?"); Может кто подскажет? Да вот ещё как проверять какой процессор? smile  


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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