[ vokus @ 24.10.2004. 14:39 ] @
Koji memoriski prostor koriste static promenljive neke Java klase?

Naime, želim da moj program (serverska aplikacija) ograničim na samo jednu instancu, pa bi za to koristio static boolean isStarted. Pitanje je dali će memorija dodeljena za ovu promenljivu biti ista za bilo koji user - Linux OS.
[ filmil @ 24.10.2004. 14:57 ] @
Citat:
Koji memoriski prostor koriste static promenljive neke Java klase?

Nije mi najjasnije šta znači ovo što si pitao. Ali nešto mogu da kažem:

Citat:
Naime, želim da moj program (serverska aplikacija) ograničim na samo jednu instancu, pa bi za to koristio static boolean
Ne tako.

Treba da koristiš tzv. Singleton design pattern, koji ne dozvoljava pravljenje više od jedne jedine instance klase (ali u okviru istog programa, tako da ti ovo možda ne vrši posao).

f
[ river @ 24.10.2004. 15:11 ] @
>
Ukoliko mislis da imas standalone aplikaciju i da nedozvolis da se
startuje vise od jedanput onda moras koristiti neki external lock.
Najbolje je da koristis filelock i da u prvoj instanci programa
zakljucas neki fajl, a ukoliko lock ne uspe onda to znaci da je neka
druga instanca tvog programa vec pokrenuta. I ovo je najbolje sto mozes
da postignes u Javi a da bude portabilno.
[ vokus @ 24.10.2004. 23:40 ] @
Ako se ne varam, za svaku naredbu

java ABC

starta se nova JVM, a svaka JVM ima svoj memoriski prostor.

Prema tome, mislim da najbolje rešenje za moj problem jeste neka varijanta file lock ili slično. Hvala na ideji.
[ yes @ 25.10.2004. 14:36 ] @
Ako ti je mrezni standalone program (kako ti kazes) ne moras da se zezas sa file sistemom ako mozes uvek da koristis jedan isti mrezni port. Ne mogu dva socket-a preko istog porta i problem je resen.
[ filmil @ 25.10.2004. 22:32 ] @
Nešto sam kontao u oflajnu: zašto uopšte zabranjivati korisniku da pokrene dve ili više instanci istog programa?!

f
[ vokus @ 26.10.2004. 23:13 ] @
Aplikacija je server - akvizicija podataka (od nekoliko drugih servera), obrada i insert u DB, pa zato je potrebno ograničavanje na samo jednu instancu.
[ filmil @ 27.10.2004. 10:18 ] @
Još uvek mi nije jasno.

f
[ masetrt @ 11.11.2004. 11:56 ] @
Tebi treba singleton klasa. To moze da se resi na vise nacina ali evo ga najprostiji. Sakrij konstruktor. Imas jednu static promenljivu npr. numberOfInstances(inicijalno = 0) i imas jednu static metodu recimo koja izgleda

TipClase Create()

koja ce pozivati konstruktor i vracati kreirani objekat samo ukoliko je numberOfInstances = 0; u suprotnom vraca null

tako ce korisnik moci da poziva koliko puta hoce Create ali ce samo jedna instanca biti kreirana