Newsgroup: it.comp.java
Titolo: creare un processo in java

Premetto che non sono espertissimo di java, specialmente per
quello che riguarda la realizzazione di sistemi multitasking con
tale linguaggio (invece ho esperienza piu' che buona in C/C++ in questo
ambito).
Ho provato a lurkare un po' e da quello che ho letto
mi sembra di aver capito che quello mi serve non si puo' fare in java, 
ma visto che non sono espertissimo del linguaggio provo
a chidere lo stesso sperando che qualcuno possa darmi una mano.
Quello che mi servirebbe e' avere a disposizione qualcosa di simile
(se non identico) alla CreateProcess del Visual C (o al limite, anche
qualcosa tipo la fork() che esiste sotto unix) ovvero qualcosa
che mi consenta di creare un altro processo che esegue del
codice che ho scritto.
Ad esempio mi servirebbe una cosa del tipo
import java.lang.*;
class A
{
  public static void main(String [] args)
  {
    Runtime r=Runtime.getRuntime();
    try
    {
      r.exec("java B"); // qui mi servirebbe qualcosa tipo la
                        //CreateProcess del Visual C
    }
    catch(Exception e0)
    {
        //gestisci eventuali eccezioni
    }
  }
}
dove B e' un'altra classe che ho scritto io.
Non sono sicuro che il codice sopra possa servire al mio scopo 
ma mi sembra di aver capito che in ogni caso la exec della classe
Runtime non e' esattamente equivalente alla CreateProcess del C (magari
mi sbaglio e in questo caso sarei lieto di sbagliarmi). Un'altra cosa
che non ho capito esattamente e' se nella classe A che ho scritto sopra
io potrei controllare in qualche modo il processo in cui viene eseguito
il codice di B (ovvero se nel main potrei in qualche modo mettermi in
attesa della fine del processo in cui esegue B, se posso vedere se il
processo in cui esegue B e' ancora in piedi oppure e' gia' terminato,
ecc., se in qualche modo posso comunicare dal main sopra al processo B
che deve terminare [al limite per fare questo uso dei socket], ecc.)
Potete darmi qualche consiglio,
grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Forse i thread potrebbero esserti utili. Cerca multithreading in Java.
Ciao.

 wrote in message
news:443faa5a$0$29721$
4faf...@reader2.news.tin.it

Grazie ma a me serviva poter creare proprio dei processi.
Va beh...
Vedro' se posso farmi bastare i thread.
Ciao,
Marco.


> writes:
M> Quello che mi servirebbe e' avere a disposizione qualcosa di simile
M> (se non identico) alla CreateProcess del Visual C
Ocio, la CreateProcess non è del C, è del sistema.
M> r.exec("java B"); // qui mi servirebbe qualcosa tipo la 
M>                   //CreateProcess del Visual C
M> Non sono sicuro che il codice sopra possa servire al mio scopo ma
Io direi di si.
M> (ovvero se nel main potrei in qualche modo mettermi in attesa della
M> fine del processo in cui esegue B, se posso vedere se il processo
M> in cui esegue B e' ancora in piedi oppure e' gia' terminato, ecc.,
M> se in qualche modo posso comunicare dal main sopra al processo B
M> che deve terminare [al limite per fare questo uso dei socket],
M> ecc.)
Ah, i sistemi privi di una kill() degna di questo nome :) :) :).
Si, con le varie salse di  exec() (di Java) ottieni un oggetto di tipo
Process (come peraltro spiega  chiaramente la documentazione, anche se
in inglese).
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Process.html
Anche se sinceramente userei anche io i thread e non un processo.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software