• Jueves 14 de Noviembre de 2024, 19:03

Autor Tema:  Problema Process.waitfor()  (Leído 2037 veces)

Kitano

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Problema Process.waitfor()
« en: Miércoles 31 de Mayo de 2006, 19:03 »
0
HOla tengo el siguiente problema  en este fragmento de código:  

public void Final() throws IOException{
       
String [] Z = new String[4];
int i=0;
       
        try{
RandomAccessFile f = new RandomAccessFile("C:/Documents and Settings/Administrador/JavaApplication4/4.bat", "rw");
       
               f.writeBytes("cd C:\\Archivos de programa\\WinCoCoA-4.6 \n");
               f.writeBytes("cocoa < 4.coc \n");
               f.writeBytes("exit");
               
               Process p=Runtime.getRuntime().exec("cmd /C start 4.BAT");
                         
               try { p.waitFor();}
               
               catch (InterruptedException e){
               System.out.println("Proceso interrumpido");}
             
             }
       
            catch(IOException excep) {
            System.out.println(excep.getMessage());}
           
       
        try {
        // así se declara el fichero para leer de él
        BufferedReader fichero = new BufferedReader(new FileReader("C:/Archivos de programa/WinCoCoA-4.6/resultado4.txt"));
   


La cuestión es que el sistema no espera al waitfor() que le tengo puesto y sigue ejecutando el programa mientras se ejecuta el .bat simultaneamente y claro el archivo .txt que necesito leer no lo tengo disponible aun ya que no ha terminado de ejecutarse el .bat dandome el error :

java.io.FileNotFoundException: C:\Archivos de programa\WinCoCoA-4.6\resultado4.txt (El sistema no puede hallar el archivo especificado)
        at java.io.FileInputStream.open(Native Method)


A ver si alguien me puede ayudar porque llevo liado tiempo con esto y no consigo avanzar para finalizar el proyecto. Gracias por adelantado.

Un saludo.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Problema Process.waitfor()
« Respuesta #1 en: Miércoles 31 de Mayo de 2006, 22:07 »
0
compañero, te cuento q yo ando en las mismas...
...,yo tengo problemas es con Thread.sleep(5000) y
con Thread.wait(5000).

...,con ninguno de los dos he conseguido q los mendigos esperen el
tiempo q se supone q deberian esperar.

YO AUN NO COMPRENDO COMO LA MAKINA VIRTUAL SE PUEDE
SALTAR UNA INSTRUCCION... PERO BUENO....

puse mi duda aqui en el foro preguntando como obtener la velocidad
del procesador del pc, para hacer yo mismo mis retardos, pero
aun no me han contestado...

...si llego a encontrar algo q nos sirva, te lo hago saber enseguida...

Kitano

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problema Process.waitfor()
« Respuesta #2 en: Jueves 1 de Junio de 2006, 10:52 »
0
Gracias compañero.

De todos modos kreo una cosa, ke no me va bien el waitfor() porke hace referencia al proceso de "lanzar el .bat" y no "a lo ke haga el .bat" porke he puesto un exitValue() y me lo devuelve el valor antes de haber acabado el .bat asi ke lo ke necesito es poner algo para que no siga avanzando hasta ke no termine la ejecucion "en si " del .bat.

Cualkier ayuda es bien recibida.

Un saludo.

Kitano

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problema Process.waitfor()
« Respuesta #3 en: Jueves 1 de Junio de 2006, 13:27 »
0
Weno por si a alguien el sirvde de ayuda la manera de parar la ejecución por decirlo de alguna manera en mi caso ha sido

 do {
            File f = new File("C:/Archivos de programa/WinCoCoA-4.6/resultado4.txt");
            if (f.exists()) {archivo2=true;};
          } while (archivo2==false);  

y asi  se keda esperando a ke termine el .bat

Un saludo