Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    [JAVA - Linux] Comando su percorso con spazi

    Buonasera,
    ho il seguente problema: Runtime.getRuntime().exec("/home/dd mm/prova") dove prova è un processo sotto linux non mi funziona causa spazi(in windows funziona).
    Ho provato a mettere il comando tra apici sia singoli che doppi, mettere il carattere \ prima dello spazio ma senza risultato.
    L'errore è il seguente:

    Cannot run program ""/home/dd" java.io.IOException: error=2, No such file or directory..

    mi sapete consigliare qualcosa?

    Saluti
    nw

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    domanda (forse banale non saprei) tu riesci ad accedere al percorso

    /home/dd pp/prova

    da linux?

    io dico che

    codice:
     cd /home/dd pp/prova
    non va a buon fine

    puoi provare con


    codice:
     cd /home/dd\ /pp/prova
    ma secondo me non è la soluzione (sarebbe meglio avere path ben formati in accordo alle regole del sistema operativo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    da shell dei comandi, funziona tutto correttamente, il processo viene lanciato. Ho tutti i permessi anche.
    Il problema è quando il processo viene lanciato da java con
    Runtime.getRuntime().exec("/home/dd mm/prova")
    Ripeto, ho provato a mettere il comando tra apici sia singoli che doppi, mettere il carattere \ prima dello spazio ma senza risultato.

    nh

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    l'eccezione parla chiaro, vede lo spazio e pensa il comando finisca lì. Ma prova a caricare quella cartella da riga di comando (senza usare tab), prendi quel comando e lancialo da shell e ti dà lo stesso errore.

    /home/dd" java.io.IOException: error=2, No such file or directory..

    non trova sotto home una cartella che si chiama dd, perché l'unica che esiste è dd mm ma quello spazio lo vede come un'altra cosa, questa è regola del sistema operativo, non è regola di java.
    Su windows funziona in modo differente perché è l'interprete dei comandi (la shell) a comportarsi in modo differente

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    il percosrso che ho scritto precedentemente, era un percorso di esempio, che non esiste...ma potrebbe essere benissimo un qualsiasi altro percorso con spazi.

    "Ma prova a caricare quella cartella da riga di comando (senza usare tab), prendi quel comando e lancialo da shell e ti dà lo stesso errore." --> che vuol dire?

    da riga di comando non può dare quell'errore visto che quello è un errore java

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora fai una cartella (con uno strumento grafico) con spazi e poi prova ad accederci da riga di comando. Io non ci sono riuscita e ho dovuto cambiare il path (e se noti non ci sono spazi nei nomi cartelle di sistema linux)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    grazie lo stesso...ma io ho bisogno degli spazi...
    cercherò qualcosa...

  8. #8
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    ciao. questa viene da AWN:
    file:///home/utente/Scrivania/miei%20documenti/progetti
    dove miei%20documenti in realtà è una cartella che si chiama "miei documenti"...vedi un po' =)
    SO: Windows 7

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    spode stai parlando di sistemi operativi differenti: su windows un comando lo lanci mettendo tutto tra virgolette, ma su linux non funziona in quel modo.

    Sono ammessi spazi bianchi nei nomi directory o file, ma in generale è sconsigliato l'uso quando si devono eseguire istruzioni a riga di comando perché aumenti la complessità della scrittura (devi mettere \ prima di ogni spazio e usare la stringa tra apici).

    Nessuno qui dice che è vietato e/o non si può fare, ti dico che se usi la shell per navigare il file system e/o lanciare comandi da programmi puoi avere problemi. Da qui è preferibile evitare spazi (sostituirli con un _ è una buona pratica)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    Risolto
    exec(String[] cmdarray) di Runtime.
    nell'array inserisco il percorso con spazi e funziona sia sotto linux che windos.
    Probabile anomalia in exec(String command).

    Ringrazio
    nh

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.