Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309

    [java] catturare output

    Ciao
    sto provando il metodo exec di runtime:

    codice:
    String [] comando = {"nbtstat", " -a", " cd21", " > c:\\prova.txt"};
    Runtime.getRuntime().exec(comando);
    cerco di catturare l'output e niente
    ho provato scrivendo una unica stringa del comando e niente
    mi chedo però:
    codice:
    Process p = Runtime.getRuntime("nbtstat -a 10.0.0.2");
    InputStream is = p.getInputStream();
    in questo caso se il comando funziona come faccio ad avere il contenuto del risultato?
    tomcat 6.016
    netbeans 6.1

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A me questo funziona

    codice:
    public class writeOutput {
      
      public writeOutput() {
        try {
          Runtime r = Runtime.getRuntime();
          Process p = r.exec("cmd /k dir \"C:\\*.*\" > C:\\dir.txt");
        }
        catch (Exception e) {
          System.out.print(e.toString());
        }
      }
      
      public static void main (String[] args) {
        writeOutput wo = new writeOutput();    
      }
    }
    Magari ti aiuta.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    fai un ciclo e leggi l'input con is.read

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    confermo che scrive il file e anche il contenuto con l'esempio, ma nel caso di nbtstat il file è vuoto
    codice:
    Process p = r.exec("cmd /k nbtstat \"-a 10.0.0.2\" > C:\\a.txt");
    non ho acpito il parametro k che segue cmd dall'esempio riportato..
    Inoltre ho provato anche a passare l'output:
    codice:
    Process p = r.exec("nbtstat -a 10.0.0.2");
    InputStream in = p.getInputStream();
    InputStreamReader reader = new InputStreamReader(in);
    BufferedReader buffReader = new BufferedReader(reader);
    StringBuilder buffer = new StringBuilder();
    String line = null;
    while((line = buffReader.readLine()) != null) {    
     buffer.append(line).append("\n");
    }
    String messaggio = buffer.toString();
    in questo caso rimane bloccata, anche se provo a costruire un array di stringhe che separa i parametri di nbtstat
    Inoltre non ho capito le indicazioni scritte da floyd con isRead...
    Ciao e grazie
    tomcat 6.016
    netbeans 6.1

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    Confermo che non ho capito isRead e ritiro il resto ha scritto il contenuto
    grazie mille
    tomcat 6.016
    netbeans 6.1

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    :master: Adesso sono io che non capisco più i tuoi messaggi

    Ammesso che non funzionasse con la scrittura su file... così va?

    codice:
    Process p = r.exec("cmd /k nbtstat -a 10.0.0.2 > C:\\a.txt");

    http://www.microsoft.com/resources/d...en-us/cmd.mspx
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    Scusami è vero ho fatto un pò di confusione...
    si così riesco a scrivere su file.
    Era una prova per capire l'output del messaggio.
    Ora cercavo di catturare a video l'output
    ma l'applicazione rimane in attesa non so di che....
    tomcat 6.016
    netbeans 6.1

  8. #8
    Qui trovi delle buone info
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  9. #9
    Così modificato ti stampa tutto
    codice:
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    
    
    /**
     * @author Zero-2
     *
     *12-giu-2005 20.12.50
     */
    public class TestProcess {
           
        
        public static int exec(String pArguments[]) throws IOException {
            class ProcessOutputPrinter implements Runnable {
                private InputStream ivIn;
         
                public ProcessOutputPrinter(InputStream pIn) {
                    ivIn = pIn;
                }
         
                public void run() {
                    try {
                        InputStreamReader isr = new InputStreamReader(ivIn);
                        BufferedReader br = new BufferedReader(isr);
                        String line=null;
                        while ( (line = br.readLine()) != null)
                            System.out.println(line);    
                        } catch (IOException ioe)
                          {
                            ioe.printStackTrace();  
                          }
                    
                }
            };
         
    
            Process tProcess = Runtime.getRuntime().exec(pArguments);
         
            
            Thread tOutPrinter = new Thread(new ProcessOutputPrinter(tProcess.getInputStream()));
            tOutPrinter.start();
         
            
            Thread tErrPrinter = new Thread(new ProcessOutputPrinter(tProcess.getErrorStream()));
            tErrPrinter.start();
         
            
            try {
                tProcess.waitFor();
                tOutPrinter.join();
                tErrPrinter.join();
            }
            catch(InterruptedException e) {
            }
         
            
            return tProcess.exitValue();
        }
        public static void main(String[] args) throws IOException {
            
            TestProcess.exec(new String[]{"cmd.exe","/C","dir","d:\\"});
        }
    
    }
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    Grazie mille per le info
    purtroppo sono su un'altro pc e non ho modo di provare...
    approfondirò meglio l'argomento
    ciao a tutti
    tomcat 6.016
    netbeans 6.1

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.