|
|
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, подскажите пожалуйста как запретить выполнение несколько экземпляров программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 08:30 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
В Java Web Start есть готовая фича http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/index.html А если кустарно, то просто подымаешь ServerSocket на какой-то специфический TCP порт. Если binding обломался, значит другой экземпляр уже запущен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:03 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ Java Web Start есть готовая фича http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/index.html Промазал: http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/javax/jnlp/SingleInstanceService.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:04 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
А у него - точно вебстарт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:16 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
maytonА у него - точно вебстарт? BlazkowczА если кустарно, то просто подымаешь ServerSocket на какой-то специфический TCP порт. Если binding обломался, значит другой экземпляр уже запущен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:28 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
А при чем тут вебстарт? У меня есть jar файл, мне нужно чтобы он не запускался, если программа уже запущена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 10:19 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
VaneS Ri_laxА при чем тут вебстарт? У меня есть jar файл, мне нужно чтобы он не запускался, если программа уже запущена. Вы, бл?*:!, издеваетесь? BlazkowiczА если кустарно, то просто подымаешь ServerSocket на какой-то специфический TCP порт. Если binding обломался, значит другой экземпляр уже запущен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 10:35 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
А другого способа нет? Я знаю что на c++ это можно делать, можно даже установить максимальное число экземпляров. Вот в Java разве нельзя сделать что то подобное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:01 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
VaneS Ri_laxА другого способа нет? Я знаю что на c++ это можно делать, можно даже установить максимальное число экземпляров. Вот в Java разве нельзя сделать что то подобное? Да ладно! Где это "в С++ можно установить максимальное число экземпляров" ? Надеюсь не путаешь с объектами операционной системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:14 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
VaneS Ri_laxА другого способа нет? Вагон и маленькая тележка. Захват любого системного ресурса + try...catch. Что может быть проще? VaneS Ri_laxЯ знаю что на c++ это можно делать, можно даже установить максимальное число экземпляров. Вот в Java разве нельзя сделать что то подобное? Можно. Если знать как работает то что написано на С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:16 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
Основные методы 1. lock file - при запуске приложения проверяем есть ли файл блокировки. Если нет то создаем файл блокировки, если да то значить какой то экземпляр уже запущен. Так устроено в netbeans (кажется файл называется .lock). Из минусов если jvm скрашилась или убили процесс или пропало питание то файл может остаться в системе и в следующий раз чтобы запустить программу придется вручную удалить этот файл. В IO API есть temp файлы которые автоматически удаляются при завершении процесса jvm. 2. Наиболее широко распространенный. Открыть socket и слушать как указал блазковитс. а)Правда не знаю будет ли винда задавать вопрос разрешить ли java процессу создавать сетевое соединение. Если брандмауэр активирован. 3.Попробовать получить от ОС список запущенных процессов java и какие параметры были переданы в него и отследить запущенную jar-ку в java процессах. наверняка есть еще варианты но обычно socket вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:26 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
Вариант с файлом - самый кроссплатформенный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:31 |
|
||
|
Несколько экземпляров программы
|
|||
|---|---|---|---|
|
#18+
lleming1. lock file - при запуске приложения проверяем есть ли файл блокировки. Если нет то создаем файл блокировки, если да то значить какой то экземпляр уже запущен. Так устроено в netbeans (кажется файл называется .lock). Из минусов если jvm скрашилась или убили процесс или пропало питание то файл может остаться в системе и в следующий раз чтобы запустить программу придется вручную удалить этот файл. Поэтому такой файл не надо проверять. Надо сразу создавать залоченным. При падении процесса система снимет лок с файла автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=130&tid=2125419]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 382ms |

| 0 / 0 |
