jarek
Druga instancja nie bedzie sie mogla podpiac do portu. Wykryjesz to i
wyslesz komunikat po TCP do tej pierwszej, a pierwsza zrobi
bringToFront().
Oczywiscie ktos inny moze zajac port, ale mozna czekac na informacje
zwrotna i ewentualnie jesli taka nie przyjdzie sprobowac na kolejnym
porcie i tak do skutku.
Inny sposob to plik gdzies w systemie, ale to malo odporne na bledy.
Moznaby jeszcze tak( to by bylo odporne na pady).
Pierwsza instancja tworzy plik np. c:\x i obserwuje go w odstepach
czasowych (klasa Timer).
Kolejne instancje jesli stwierdza ze plik istnieje to kasuja go i czekaja
az pierwsza instancja to zauwazy i znowu utworzy plik.
Jesli po okreslonym czasie pliku nie bedzie to z duzym
prawdowpodobienstwem nie ma innej instancji.
(..)
> Pierwsza instancja tworzy plik np. c:\x i obserwuje go w odstepach
> czasowych (klasa Timer).
(..)
bez sensu - nie mam dysków a,b,c,d,e,f,... ? i co dalej ? gdzie ten plik ?
;-)
--
slackware powered #165326 linux user
http://pbs.linux.net.pl - różne rzeczy dla linuksa
p...@linux.net.pl - napisz do mnie
(..)
> Pierwsza instancja tworzy plik np. c:\x i obserwuje go w odstepach
> czasowych (klasa Timer).
(..)
bez sensu - nie mam dysków a,b,c,d,e,f,... ? i co dalej ? gdzie ten plik ?
;-)
Trzeba zmienic system na jakis bardziej odpowiedni. ;)
Patrz post o banku czytajacym plik uwierzytelniajacy z napedu a:
Pozdrawiam,
Marcin Sciesniski
(..)
> Pierwsza instancja tworzy plik np. c:\x i obserwuje go w odstepach
> czasowych (klasa Timer).
(..)
bez sensu - nie mam dysków a,b,c,d,e,f,... ? i co dalej ? gdzie ten plik ?
;-)
Mozna uzyc metody zwracajacej plik reprezentujacy katalog "tmp".
Cośgdzieś widziałem w specyfikacji może była to klasa Runtime w tej chwili
nie mam możliwości tego sprawdzić.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Cośgdzieś widziałem w specyfikacji może była to klasa Runtime w tej chwili
Z zaproponowanych, najbardziej przemawia do mnie
sposob z soketem. W zasadzie widze tylko jedna jego
wade - co gdy mamy do czynienia z systemem
wielouzytkownikowym (np. aplikacja odpalana na Unixie).
A moze by tak wykorzystac dostepne od 1.4.0 java.util.prefs
poprzez ktore wpisywac jakis klucz sygnalizujacy dzialanie aplikacji?
jarek
Pozdrawiam
ms
Chcesz mi powiedziec, ze singleton zabezpieczy
mnie przed dwukrotnym wykonaniem?
java -jar aplikacja.jar
java -jar aplikacja.jar
jarek
>Wykorzystaj obiekt typu Singleton - masz wtedy jedna instancje na JVM
>(mozesz tak odpalac glowne okno - wtedy przy probie ponownego
>uruchomienia zostaniesz przerzucony do istniejacej instancji).
Ale jak odpalasz drugą kopię programu, to masz dwie JVM, a zatem dwa
singletony.
--
Ecce Jezuch
http://free.polbox.pl/j/jezuch - Kronika paranoika
"All the world around enemy; they're tearing up the ground enemy
They're drawn in by the sound; enemy, enemy, i must eliminate my enemy"
- D. Draiman
--
Serwis Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Pozdrawiam
ms
>>uruchomiona wyskoczyla mu przed oczy. Da rade?
>>
> pewnie da - własnie sprawdziłem, zobacz jak to robi jedit (www.jedit.org)
Wlasnie patrze... I wlasnie sobie "pozyczam"
kod do obslugi helpa w HTML :-)
jarek
to jak już wypatrzysz, jak to jest z tą jedną instancją, to napisz tutaj
:) bo sam jestem zbyt wielka lama, by to wyssać z kodu ;-)
> to jak ju? wypatrzysz, jak to jest z t? jedn? instancj?, to napisz tutaj
> :) bo sam jestem zbyt wielka lama, by to wyssa? z kodu ;-)
Sprawa z jEditem wydaje sie byc prosta (po tym jak
ktos tu napisal ze mozna sluchac na sokecie :-)
$ netstat -anp 2> /dev/null | grep java
$ /usr/local/bin/jedit &
[1] 739
$ netstat -anp 2> /dev/null | grep java
tcp 0 0 127.0.0.1:32843 0.0.0.0:* LISTEN
739/java
unix 3 [ ] STREAM CONNECTED 27095 739/java
$ telnet 127.0.0.1 32843
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
[error] java.net.SocketTimeoutException: Read timed out
[error] at java.net.SocketInputStream.socketRead0(Native Method)
[error] at
java.net.SocketInputStream.read(SocketInputStream.java:129)
[error] at
java.net.SocketInputStream.read(SocketInputStream.java:182)
[error] at java.io.DataInputStream.readInt(DataInputStream.java:392)
[error] at org.gjt.sp.jedit.EditServer.handleClient(Unknown Source)
[error] at org.gjt.sp.jedit.EditServer.run(Unknown Source)
Connection closed by foreign host.
jarek
--
Kazdy moze byc pedalem, ale nie kazdy pedal moze byc Oskarem Wildem. /
Waldemar Lysiak
> pbs wrote:
>
>
> > to jak ju? wypatrzysz, jak to jest z t? jedn? instancj?, to napisz
> > tutaj:) bo sam jestem zbyt wielka lama, by to wyssa? z kodu ;-)
>
> Sprawa z jEditem wydaje sie byc prosta (po tym jak
> ktos tu napisal ze mozna sluchac na sokecie :-)
>
>
> $ netstat -anp 2> /dev/null | grep java
>
(..)
czyli tak jak sugerował ktoś (albo i ty ;-))
Niby OK, ale co zrobic gdy port jest uzywany przez inny program. Porty
sa dobrem wspolnym i nikt nie ma monopolu na ich uzywanie. Nawet porty
ogolnie przyjete za zastrzezone sa takie tylko z nazwy - to tylko umowa.
pozdrawiam
ms
> > $ netstat -anp 2> /dev/null | grep java
> czyli tak jak sugerowa=B3 kto=B6 (albo i ty ;-))
A co jak będą odpalone dwa lub więcej programy chodzące z interpreterem Java.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/