Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [JAVA]Problema exec

  1. #1

    [JAVA]Problema exec

    stavo provando ad usare l'exec della classe Runtime.
    Ecco ciò che ho fatto:
    codice:
    import java.io.*;
    /**
     * @author Naruto 92
     */
    public class RuntimeExec
    {
        public static void main(String argv[]) throws IOException {
            File f=new File(path + nome file);
            Process p=Runtime.getRuntime().exec("cmd /c start " + f.getAbsolutePath());
        }
    }
    quando il file ha un nome composto da più parole (per esempio: "Questo è il mio file.pdf" [da notarsi gli spazi nel nome del file]) mi esce una dialog indicandomi che non trova il file.
    Invece se il nome del file è composto da una sola parola va tutto bene (per esempio: "Ciao.pdf").
    Da cosa potrebbe essere causato questo problema?
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  2. #2
    usando cmd /c il nome del file se contiene degli spazi bisogna racchiuderlo tra virgolette, altrimenti le parole vengono interpretati come opzioni del comando. Quindi prova a fare in questo modo:
    codice:
    Process p=Runtime.getRuntime().exec("cmd /c start \"" + f.getAbsolutePath()+"\"");
    http://www.simplesoft.it

  3. #3
    in effetti ci avevo pensato ed avevo provato inserendo al posto dello spazio il trattino basso, ma non andava...
    ora mi apre il prompt avente come nome la path del file
    andando a spulciare il manuale del comando start ha la seguente sintassi:
    start "nome finestra" percorso... ecc

    ora, mettendo il percorso tra apici lo prende come nome della finestra, quindi come facciamo a farlo risultare come percorso?
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  4. #4
    togli start, non ci vuole e usa le virgolette

    codice:
    import java.io.*;
    /**
     * @author Naruto 92
     */
    public class RuntimeExec
    {
        public static void main(String argv[]) throws IOException {
            File f=new File(path + nome file);
            Process p=Runtime.getRuntime().exec("cmd /c \"" + f.getAbsolutePath()+"\"");
        }
    }
    Cosi dovrebbe funzionare
    http://www.simplesoft.it

  5. #5
    avevo risolto così:

    codice:
    Process p=Runtime.getRuntime().exec("cmd /c start \"nome avvio\" \"" + f.getAbsolutePath() + "\"");
    funziona anche il tuo comunque.

    grazie
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  6. #6
    altro problema...
    il destroy() non mi killa il processo...

    la cosa strana è che l'ho provato un'oretta fa aprendo semplicemente Acrobat (senza documento) e me lo killava regolarmente.

    ora sia con documento aperto sia con senza non me lo killa il processo.

    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Naruto 92
    altro problema...
    il destroy() non mi killa il processo...
    Hai lanciato "cmd /c start ......" ?
    Allora 2 cose: innanzitutto il processo di cui hai il controllo da Java è cmd.exe ..... non quello che viene avviato, nota in modo "asincrono", con lo start.
    E secondo, in tale modo il cmd.exe "vive" praticamente poco, è velocissimo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    i effetti si, quando ci provai a killare il processo c'era lo start.

    anche reinserendo lo start però non viene killato
    strano perchè quando lo provai la prima volta andava...

    allora come potrei impostare come processo principale "ciò che viene aperto" e non il cmd?
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

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.