SoloCodigo
Programación General => Java => Mensaje iniciado por: Kitano en Miércoles 31 de Mayo de 2006, 19:03
-
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.
-
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...
-
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.
-
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