Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    come utilizzare exec();

    Salve a tutti .. sapete dirmi come posso richiamare un comando da terminale su linux tramite codice java?
    Quello che più mi interessa è sapere come far stampare a video l'output dell'eventuale comando lanciato...

    fin'ora sono a questo punto..

    Runtime r=Runtime.getRuntime();
    Process init=r.exec("/sbin/route");
    System.out.println("route");
    OutputStream out=init.getOutputStream();

    e poi?Il comando lo esegue e non lancia eccezioni ... :master:

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323
    Sicuramente non con getOutputStream() dato che, come dice il nome, è uno stream di output verso il programma.

    Per leggere quello che un programma produce si usa un InputStream.


    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

  3. #3
    Per leggere l'output del processo, devi prendere l'inputStream, non l'outputStream; ad esempio:
    codice:
    InputStream is = init.getInputStream();
    InputStreamReader isr = new InputStreamReader( is );
    BufferedReader br = new BufferedReader( isr );
    String line;
    
    while ( (line = br.readLine() ) != null ) 
    {
      System.out.println( line );
    }
    Ovviamente alla fine chiudi tutti gli stream.
    Ti consiglio inoltre di leggere anche l'errorStream.

    Ciao,

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 © 2025 vBulletin Solutions, Inc. All rights reserved.