Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    exec: il comando (corretto su shell) sembra non funzionare

    Salve a tutti

    Vorrei lanciare wget (con parametri) da un programma Java. Questo è il comando che uso:

    /opt/local/bin/wget --save-cookies /Users/alessandro/Download/megaupload.cookie --post-data "login=1&next=c%3Daccount&username=USERNAME&passwo rd=PASSWORD" -O - http://www.megaupload.com/?c=account

    Da shell funziona alla perfezione, salvandomi correttamente il cookie nel posto indicato. Lanciando il comando da exec invece il programma resta in attesa infinita (ovviamente inserisco username e password).

    Questo è il pezzo Java che lancia wget:
    codice:
            String command =
                    "/opt/local/bin/wget --save-cookies megaupload.cookie --post-data \"login=1&next=c%3Daccount&username=USERNAME&password=PASSWORD\" -O - http://www.megaupload.com/?c=account";
    
            System.out.println("Starting...");
            Process p = Runtime.getRuntime().exec(command);
    
            System.out.println("Wait: " + p.waitFor());
    Mandando in esecuzione ottengo a video solo la scritta "Starting..." ed il processo sembra non terminare mai (l'ho lasciato andare avanti 10 minuti, poi l'ho killato, in genere in un paio di secondi ho il risultato).

    Cosa mi sfugge?
    Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: exec: il comando (corretto su shell) sembra non funzionare

    Originariamente inviato da Alex'87
    Mandando in esecuzione ottengo a video solo la scritta "Starting..." ed il processo sembra non terminare mai (l'ho lasciato andare avanti 10 minuti, poi l'ho killato, in genere in un paio di secondi ho il risultato).

    Cosa mi sfugge?
    Il wget tipicamente scrive su standard-error già di suo (info sull'avanzamento ecc...) ... se poi c'è l'opzione -O - allora la risorsa scaricata viene pure scritta sullo standard-output.

    Quindi c'è molto output! E da Java devi leggere tale output, altrimenti per questioni di "buffering" il processo lanciato ad un certo punto si blocca.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: exec: il comando (corretto su shell) sembra non funzionare

    Originariamente inviato da andbin
    Il wget tipicamente scrive su standard-error già di suo (info sull'avanzamento ecc...) ... se poi c'è l'opzione -O - allora la risorsa scaricata viene pure scritta sullo standard-output.

    Quindi c'è molto output! E da Java devi leggere tale output, altrimenti per questioni di "buffering" il processo lanciato ad un certo punto si blocca.
    Intanto grazie
    Non pensavo di dover leggere l'output, a me interessa solo salvare il cookie. Ho modificato il codice in modo che legga l'output ed ora il processo termina (con zero). Il cookie creato però è vuoto:
    codice:
    # HTTP cookie file.
    # Generated by Wget on 2009-12-07 14:19:54.
    # Edit at your own risk.
    Eppure lanciando il comando da shell funziona tutto correttamente!!
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.