Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [JAVA]IOException durante esecuzione comandi dos

    Ave populus,
    dovendo eseguire da java dei comandi dos, ho scritto questo:
    codice:
    Runtime r = Runtime.getRuntime();
    try {
       Process p = r.exec("dir > lista.txt");
    } catch (IOException x) {
       System.out.println("Errore di input output");
       System.out.println(x.getCause());
       System.out.println(x.getMessage());
       System.out.println(x.getStackTrace()); 
    }
    ma così non và, mi restituisce una eccezione di input/output:
    Errore di input output
    null
    CreateProcess: dir > lista.txt error=2
    [Ljava.lang.StackTraceElement;@1f3ce5c
    cosa sbaglio???

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Credo che sia perchè DIR è un comando interno, quindi non riesce a creare il processo, quindi il valore di p diventa nullo.

    Prova così:
    codice:
    Runtime r = Runtime.getRuntime();
    try {
       Process p = r.exec("CMD /C dir > lista.txt");
    } catch (IOException x) {
       System.out.println("Errore di input output");
       System.out.println(x.getCause());
       System.out.println(x.getMessage());
       System.out.println(x.getStackTrace()); 
    }
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da LeleFT
    Credo che sia perchè DIR è un comando interno, quindi non riesce a creare il processo, quindi il valore di p diventa nullo.

    Prova così:
    codice:
    Runtime r = Runtime.getRuntime();
    try {
       Process p = r.exec("CMD /C dir > lista.txt");
    } catch (IOException x) {
       System.out.println("Errore di input output");
       System.out.println(x.getCause());
       System.out.println(x.getMessage());
       System.out.println(x.getStackTrace()); 
    }
    ho fatto così come hai detto e non dà nessun errore e non solleva alcuna eccezione, ma non và, non scrive nessun file lista.txt

    ------- EDIT -------
    se però metto così:
    codice:
    Process p = r.exec("notepad");
    mi apre notepad

  4. #4
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    risolto mettendo:
    codice:
    Process p = r.exec("CMD /C start dir > lista.txt");

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    A me funziona: mi ha creato un file lista.txt nella cartella in cui ho fatto girare il programma. Se stai usando qualche IDE per la compilazione/esecuzione, ti consiglio di provare direttamente dal prompt dei comandi.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da LeleFT
    A me funziona: mi ha creato un file lista.txt nella cartella in cui ho fatto girare il programma. Se stai usando qualche IDE per la compilazione/esecuzione, ti consiglio di provare direttamente dal prompt dei comandi.


    Ciao.
    non uso nessun ide, cmq sì è strano, ma senza dare start non và nulla


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.