Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    Eseguire comando dos tramite java

    Ragazzi ho un problema con un mio programma..dovrei eseguire tramite un programma java il seguente comando dos :

    codice:
    listdir -MD5 "path_mio_file" file.load"
    In pratica listdir è un .exe che ho nella mia cartella e quando lo eseguo devo passargli quei parametri e cioè :

    -MD5
    -path_mio_file
    -file.load


    Il fatto è che se eseguo questo comando in dos, esegue ciò che deve fare, mentre tramite java non funziona. da java il comando lo richiamo in questo modo :

    codice:
    public class ExecuteDOSCommand {
       public static void main(String[] args) {
    	  
          final String dosCommand = "cmd /c listdir -MD5 \"C:\\u01\\Aziende caricate\\Alluminio Sud srl\" file.load";
          final String location = "\"C:\\u01\\Aziende caricate\\Alluminio Sud srl\"";
    	  
          
          try {
             final Process process = Runtime.getRuntime().exec(
                dosCommand + " " + location);
            
             final InputStream in = process.getInputStream();
             
             int ch;
             while((ch = in.read()) != -1) {
                System.out.print((char)ch);
             }
            
          } catch (IOException e) {
             e.printStackTrace();
          }
       }
    }
    qualche aiuto?grazie..

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

    Re: Eseguire comando dos tramite java

    Originariamente inviato da jin85
    In pratica listdir è un .exe che ho nella mia cartella

    codice:
    final String dosCommand = "cmd /c listdir -MD5 \"C:\\u01\\Aziende caricate\\Alluminio Sud srl\" file.load";
    Innanzitutto se listdir è un "eseguibile" (.exe) allora non c'è bisogno di lanciare l'interprete dei comandi cmd con /c !
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    è la prima volta che uso un comando del genere, mi potresti dire la differenza tra /c , /k e altri paramentri che ho visto in giro?

    Per quanto riguarda l'esecuzione dell'eseguibile ho risolto, gli ho dato il path di dove si trova l'eseguibile e me lo esegue, restituendomi il file che voglio. L'unica cosa che il risultato dell'esecuzione (cioè il file .txt che mi genera l'exe listdir) non viene generato nel path che voglio io, perchè non riesco a specificargli un path. Quindi il risultato me lo crea nella cartella del WORKSPACE del mio programma java.

    codice:
    public class ExecuteDOSCommand {
       public static void main(String[] args) {
    	  
          final String dosCommand = "cmd /c C:\\WINDOWS\\listdir.exe -MD5 \"C:\\u01\\Aziende caricate\\Airon Srl\" file.load";
          final String location = "\"C:\\u01\\Aziende caricate\\Alluminio Sud srl\"";
    	  
          String Dir = "C:\\";
          final String locationDir = Dir;
          try {
             final Process process = Runtime.getRuntime().exec(
                dosCommand+" "+locationDir);
             
             final InputStream in = process.getInputStream();
            
             int ch;
             while((ch = in.read()) != -1) {
                System.out.print((char)ch);
             }
             
          } catch (IOException e) {
             e.printStackTrace();
          }
       }
    }
    In questo caso come locationDir (cioè dove voglio che mi venga generato l'output) ho settato C:, ma non me lo genera. mentre se non gli metto locationDir genera l'output ma nella cartella del WORKSPACE.

    Thanks.

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.