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

    problema con oggetti Runtime

    Salve a tutti.
    Avrei necessità di mandare, tramite java e da sistema oeprativo Windows, dei file su un server linux, tramite scp.
    Ho scaricato pscp (scp per windows), e ho eseguito la classica procedura di copia file utilizzando la seguente sintassi

    C:\pscp.exe -r -pw <password> D:\CartellaConenenteFileSulClient\* root@<ipServer>:/home/cartella/

    da riga di comando, funziona a meraviglia mentre, se utilizzo il metodo Runtime di java utilzzando la seguente sintassi

    codice:
    String [] command = new String[]{"C:\\pscp.exe -r -pw <password> D:\\CartellaConenenteFileSulClient\\* root@<ipServer>:/home/cartella/
    "};
    Process p = Runtime.getRuntime().exec(command);
    Mi da errore

    "Cannot run Programm" oppure "Errore 2 - Nome file non valido" o cose simili. Premetto che ho provato diversi modi di "formattare" la stringa, cioè creando diverse stringhe per ogni campo tipo
    codice:
    String [] command = new String[]{"C:\\pscp.exe", " -r", " -pw <password>",  "D:\\CartellaConenenteFileSulClient\\* root@<ipServer>:/home/cartella/
    "};
    oppure, inserendo "cmd" prima di invocare pscp.exe... ma niente. Ho pure provato a costruire un file batch (destinato a restare sul client) solo che, se gli passo i parametri (/home/cartella è variabile, non è sempre la stessa), non mi copia i file che mi interessano...

    Qualche GURU può aiutarmi? Magari mi dice come posso passare parametri ad un file batch da java o simili?

    GRAZIE :-D

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    migliora con:
    codice:
    String [] command = new String[]{"cmd start C:\\pscp.exe -r -pw <password> D:\\CartellaConenenteFileSulClient\\* root@<ipServer>:/home/cartella/
    "};
    Process p = Runtime.getRuntime().exec(command);
    ?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Aggiungo un suggerimento.
    Se "D:\\CartellaConenenteFileSulClient\\*" è un percorso che contiene degli spazi, come ad esempio:

    C:\Documents and Settings\TuoNome\Cartella condivisa\...

    allora è necessario che esso sia delimitato dalle virgolette. Anzi, per non avere problemi di sorta, prendi come regola che i percorsi Windows (di qualunque tipo) li devi racchiudere da virgolette.

    La tua stringa, quindi, dovrebbe diventare:

    codice:
    "C:\\pscp.exe -r -pw <password> \"D:\\CartellaConenenteFileSulClient\\*\" root@<ipServer>:/home/cartella/"
    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

  4. #4
    nono, non è questo il problema....

    comunque ho risolto.
    Invece di passare un 'array di stringhe, passo una stringa sola (l'oggetto RUntime ha anche il costruttore per una stringa), quindi

    String [] comando

    diventa

    String comando

    e gestisco come un'unica stringa.... grazie e a presto

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.