Supponiamo di voler invocare un semplic bat di questo tipo:
Via java è possibile utilizzare la seguente istruzione:
E in effetti funziona ma il file non viene creato nella directory relativa c:excel bensì in quella dove stiamo eseguendo il nostro pgm Java.
Non sono riuscito a capire come fare (sicuramente ci deve essere un modo) per fare in modo che non scrivesse il file nel percorso relativo al pgm Java ma inutilmente.
Ho provato anche a fare una cosa del tipo:
System.setProperty("user.dir","c:\\excel");
ma niente da fare.
Per risolvere ho utilizzato la libreria commons-exec-1.1.jar.
echo %1 %2
echo Ciao %1 %2 > pippo.txt
Quindi un bat che prende in input dei parametri e li scrive su un file (creandolo ex novo), in un path RELATIVO rispetto alla posizione del path.Via java è possibile utilizzare la seguente istruzione:
Runtime.getRuntime().exec("cmd /c start C:\\excel\\test.bat ciao sam");
E in effetti funziona ma il file non viene creato nella directory relativa c:excel bensì in quella dove stiamo eseguendo il nostro pgm Java.
Non sono riuscito a capire come fare (sicuramente ci deve essere un modo) per fare in modo che non scrivesse il file nel percorso relativo al pgm Java ma inutilmente.
Ho provato anche a fare una cosa del tipo:
System.setProperty("user.dir","c:\\excel");
ma niente da fare.
Per risolvere ho utilizzato la libreria commons-exec-1.1.jar.
DefaultExecutor df=new DefaultExecutor();
df.setWorkingDirectory(new File("c:\\excel"));
CommandLine cl=new CommandLine("c:\\excel\\test.bat");
cl.addArgument("uno");
cl.addArgument("due");
df.execute(cl)
Si noti che se si commenta il rigo 2 (il setWorkingDirectory) torniamo alla situazione precedente, mentre se non si specifica nel CommandLine il percorso assoluto e si mette quello relativo comunque non funziona (nonostante abbia settata la working directory) e da proprio errore lamentando la mancanza del file bat.
Nessun commento:
Posta un commento