Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    6

    Lanciare programma da Java

    Salve a tutti!
    Ho un problema quando vado a lanciare un programma da Java. L'applicazione che devo lanciare ha il seguente path:
    C:\Programmi\PolaRx3.2.0GraphicalTools\RxControl3. 1.exe (sto lavorando in questo momento sotto windows)

    nel mio codice Java scrivo:
    String command = "C://Programmi//PolaRx3.2.0GraphicalTools//RxControl3.1.exe";
    try{
    Process p=Runtime.getRuntime().exec(command);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }

    Non fa assolutamente niente e purtroppo nemmeno posso debuggare. Il problema è sicuramente nella stringa command, secondo il mio punto di vista, ma ho provato sia con \\ e sia (come si vede) con //.
    Come posso risolvere??? GRAZIE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    O usi il doppio backslash (un backslash per qotare l'altro), forma Windows-like, o usi la forma Unix-like, quindi un solo slash.

    codice:
    C:\\percorso\\al\\file
    Oppure
    codice:
    C:/percorso/al/file
    Io consiglio sempre la seconda.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    6
    Provato ma non funziona!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da mosine
    Provato ma non funziona!
    Posta quello che hai provato (usando gli appositi tag CODE, vedi Regolamento interno), e gli errori che ottieni.

    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    6
    codice:
     
        String command = "C:\\Programmi\\PolaRx3.2.0GraphicalTools\\RxControl3.1.exe";
        try
        {
            Process p=Runtime.getRuntime().exec(command);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    Come ho scritto in precedenza ho provato anche "C:/Programmi/...". Non so se può far differenza il fatto che sia un pezzo di codice java inserito all'interno di una pagina jsp. Grazie per l'aiuto.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il fatto che sia all'interno di una JSP ha come unico effetto il fatto che il programma verrà avviato in background. Quindi, se tale programma deve produrre qualcosa a video, non lo vedrai.

    Quel codice, così com'è, funziona perfettamente, sia con il doppio backslash, sia con lo slash singolo.

    Se tu desumi che quel codice non funzioni perchè non vedi nulla a video, il motivo è quello: una JSP è una pagina WEB, che vive all'interno di un Servlet Container (generalmente Tomcat), e che non deve avere, per sua natura, nessuna interazione lato server. Quindi, ogni processo generato da Runtime.exec() viene avviato in background. Se il programma richiede un intervento manuale, lo troverai fra i processi attivi controllando il TaskManager di Windows.


    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

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.