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

    Runtime.getRuntime().exec(comandi) e percorsi remoti

    sto eseguendo dei file dal mio programma seguendo questa sintassi:
    codice:
    String[] comandi = {"cmd", "/C", file.getAbsolutePath()};
    Runtime.getRuntime().exec(comandi);
    ma se il file non è su macchina locale, non funziona. come posso ovviare a questo probema?

  2. #2
    stessa cosa se metto
    codice:
    Desktop.getDesktop().open(file);
    i file in locale funzionano,quelli in remoto no!!!!

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

    Re: Runtime.getRuntime().exec(comandi) e percorsi remoti

    Originariamente inviato da franksisca
    ma se il file non è su macchina locale, non funziona.
    Dipende da cosa intendi allora per macchina "remota". Se il file è su uno share di rete basta usare la forma \\server\nomeshare\blabla.....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    codice:
    java.io.IOException: Failed to open file:////Mimmo/samsung%20(e)/Volume/Software%20GEstione%20Associati%20Versione%200.9/archive/referenti.txt. Error message: Impossibile trovare il percorso specificato.
    mi dà questo errore

    io praticamente aggiungo il file all'oggetto (preventivamente serializzato), poi in un altro pannello lo richiamo e gli chiedo di aprirlo. ma non lo apre.

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da franksisca
    codice:
    java.io.IOException: Failed to open file:////Mimmo/samsung%20(e)/Volume/Software%20GEstione%20Associati%20Versione%200.9/archive/referenti.txt. Error message: Impossibile trovare il percorso specificato.
    mi dà questo errore
    Se usi Desktop.open, il java.io.File deve proprio contenere "\\....." come ho detto prima, non un file://
    Se usi solo "cmd /c ...." dovrei fare una prova ma a sensazione mi pare proprio che il file:// non sia trattato. Se usi "cmd /c start ....." potrebbe/dovrebbe funzionare anche con file://
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Originariamente inviato da andbin
    Se usi Desktop.open, il java.io.File deve proprio contenere "\\....." come ho detto prima, non un file://
    Se usi solo "cmd /c ...." dovrei fare una prova ma a sensazione mi pare proprio che il file:// non sia trattato. Se usi "cmd /c start ....." potrebbe/dovrebbe funzionare anche con file://
    quindi come faccio a modificare il path??? ho anche provato a mettere il path manualmente ma senza ottenere risultati degni di nota.

    sulla macchina in lan il file è questo:
    codice:
    \\Mimmo\samsung (e)\1.pdf
    ho provato così:
    codice:
    //File f=new File("\\\\Mimmo\\samsung (e)\\1.pdf");       
    File f1=new File("//Mimmo/samsung (e)/1.pdf");         
    // Desktop.getDesktop().open(f);                 
    Desktop.getDesktop().open(f1);
    ma non ho risolto nemmeno

    ovviamente ho alternato le due soluzioni

  7. #7
    credo di aver risolto, spulciando in rete ho trovato questi frammenti di codice, che al mmomento sembrano funzionare

    codice:
        // generate uri according to the filePath
        private URI getFileURI(String filePath) {
            URI uri = null;
            filePath = filePath.trim();
            if (filePath.indexOf("http") == 0 || filePath.indexOf("\\") == 0) {
                if (filePath.indexOf("\\") == 0) {
                    filePath = "file:" + filePath;
                    filePath = filePath.replaceAll("#", "%23");
                }
                try {
                    filePath = filePath.replaceAll(" ", "%20");
    
                    URL url = new URL(filePath);
                    uri = url.toURI();
                } catch (MalformedURLException ex) {
                    ex.printStackTrace();
                } catch (URISyntaxException ex) {
                    ex.printStackTrace();
                }
            } else {
                File file = new File(filePath);
                uri = file.toURI();
            }
            return uri;
        }
    
        public void launchFile(File file) {
            if (!Desktop.isDesktopSupported()) {
                return;
            }
            Desktop dt = Desktop.getDesktop();
            try {
                dt.open(file);
            } catch (IOException ex) {
                // this is sometimes necessary with files on other servers ie
                // \xxxxxx.xls
                launchFile(file.getPath());
            }
        }
    
    // this can launch both local and remote files
        public void launchFile(String filePath) {
            if (filePath == null || filePath.trim().length() == 0) {
                return;
            }
            if (!Desktop.isDesktopSupported()) {
                return;
            }
            Desktop dt = Desktop.getDesktop();
            try {
                dt.browse(getFileURI(filePath));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da franksisca
    codice:
    File f=new File("\\\\Mimmo\\samsung (e)\\1.pdf");
    Ho fatto delle prove sul mio PC di casa (Java 6 su Win 2000). In effetti il problema si presenta quando nel percorso ci sono spazi o cancelletti "#" (non ho provato altri caratteri particolari ma potrebbero essercene altri che danno problemi). Per il resto la forma \\....\.... è corretta (nel java.io.File funzionerebbe anche con gli slash / ).
    E tra l'altro la problematica con lo spazio era già stata segnalata nel Bug ID 6780505.

    Originariamente inviato da franksisca
    credo di aver risolto, spulciando in rete ho trovato questi frammenti di codice, che al mmomento sembrano funzionare
    Bene meglio così, mi fa piacere.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.