|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2004
Messaggi: 131
|
[Java] comunicazione tra processi
Ciao a tutti.
Sto facendo un programmino in java e vorrei chiedervi un parere. Devo fare in modo che quando il programma viene lanciato, controlla se era già in esecuzione e in tal caso non viene rieseguito (System.exit(0)). Questa cosa posso ottenerla solo con la comunicazione tra i processi vero? In ogni caso sapete darmi qualche indicazione o qualche link che può essermi d'aiuto? Grazie mille. Ultima modifica di Swalke : 13-07-2008 alle 14:15. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
quando lanci l'applicazione cerchi un file fake in una posizione nota, se non esiste lo crei, senno esci e alla terminazione del programma lo cancelli
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2004
Messaggi: 131
|
Grazie per l'aiuto.
Al file ci avevo già pensato ma comporta delle inconvenienze. Ad esempio il programma potrebbe essere terminato da task manager e in tal caso il file non verrebbe cancellato. In oltre il file può essere cancellato o modificato dall'utente. Altri consigli? Ultima modifica di Swalke : 13-07-2008 alle 14:15. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
__________________
My gaming placement |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Il singleton non funziona (diversa jvm).
Per il file usa un lock: http://java.sun.com/javase/6/docs/ap.../FileLock.html
__________________
|Java Base| |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
Quote:
__________________
My gaming placement |
||
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Il release del lock o la cancellazione automatica del file non può essere garantita in ogni caso, infatti nelle API si fa riferimento ad una "normal termination of the virtual machine". Credo però che il peggio che possa capitare sia che il file non venga automaticamente rimosso in casi particolari. Il lock dovrebbe comunque sparire da solo, anche se su NTFS questo richiede l'attesa di un timeout.
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Ma aprire un serversocket su una porta non standard e catchare l'eccezione e far terminare il programma in caso la porta sia già aperta?
__________________
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: May 2007
Città: Roma
Messaggi: 93
|
La butto lì...
il file lo crei e nel caso in cui una nuova istanza venga lanciata scrive sul file chiedendo di "poter partire"; l'altra istanza essendo in "attesa di aggiornamenti sul file" gli dà il NO. Certo a questo punto forse è meglio una socket.... comunque un idea in più non fa male
__________________
Più ti avvicini alla luce, più la tua ombra diventa grande (Kingdom Hearts - Walt Disney e Squaresoft, ma la mano è della Squaresoft) |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
bhè..
tanto per mettere d'accordo tutti si potrebbe usare un serversocket che prova ad aprire una porta e se non riesce la incrementa di uno.. fino a quando non la apre e allora scrive su un file di configurazione il valore della porta ...dubito che qualcuno sia tanto veloce da aprire due volte l'applicazione prima che il file sia stato aggiornato
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:07.











|








