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

    JAVA - Input stream ad un eseguibile

    Ciao ragazzi,

    ho urgente bisogno di voi.

    Praticamente ho un eseguibile (chiamiamolo pippo) che prende un file specificato da linea di comando e fa qualcosa:

    >> pippo nomefile

    Ora leggendo la documentazione di questo eseguibile, è possibile usare la pipe per indirizzare l'input al programma. Tipo:

    >> cat nomefile | pippo -infile=stdin

    L'opzione -infile=stdin permette di fare tutto questo.

    La mia domanda è, siccome questo comando pippo lo eseguo da java (Richiamando la shell oppurtanamente), come faccio ad indirizzare un output di una mia stringa al programma?

    Invece di creare un file e poi lanciare il comando pippo file da java, voglio mettere il mio input al comando pippo in uno stream senza creare nessun file.

    Come potrei fare? Grazie ragazzi!

  2. #2
    Scusate ho sbagliato sezione

  3. #3

    Moderazione

    Java ha una sezione apposita, provvedo a spostare il thread; in futuro scrivilo nella sezione giusta fin da subito.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Si grazie, mi scuso.

    Qualcuno ha qualche idea?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Richiama il comando pippo usando il metodo exec() di Runtime, passandogli il parametro -infile=stdin. Ottieni quindi l'oggetto Process. Dall'oggetto Process ottieni l'OutputStream. Scrivendo su questo OutputStream andrai a scrivere nello stdin del processo (quello che fa il pipe).

    codice:
    String[] comando = {"pippo", "-infile=stdin"};
    Process p = Runtime.getRuntime().exec( comando );
    OutputStream os = p.getOutputStream();
    PrintStream ps = new PrintStream( os );
    ps.println("blablablabla");   // Quello che vuoi far arrivare al processo
    ps.flush();
    ps.close();
    PS: gestire le eccezioni.


    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
    Grazie funziona alla grande

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.