Io ho effettuato questo test.
Il JAR da invocare (ClasseChiamata.jar) contiene solamente la seguente classe
La classe che deve invocarlo, è così composta:codice:package classechiamata; import java.io.*; public class ClasseChiamata { public static void main(String[] args) { FileWriter fw = null; PrintWriter pw = null; try { fw = new FileWriter("pippo.log"); pw = new PrintWriter( fw ); for(String s : args) { pw.println("Parametro: " + s); } pw.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (pw != null) { try { pw.close(); } catch (Exception e) { } } else { if (fw != null) { try { fw.close(); } catch (Exception e) { } } } } } }
Questo è il file generato dalla chiamata al programma "ClasseChiamante":codice:public class ClasseChiamante { public static void main(String[] args) throws Exception { Runtime.getRuntime().exec( new String[] {"java", "-jar", "ClasseChiamata.jar", "-pippo", "-pluto", "-debug", "-fd"} ); } }
Quindi, il lavoro viene svolto correttamente e i parametri vengono passati tutti, in modo corretto e nell'ordine esatto in cui sono elencati.codice:Parametro: -pippo Parametro: -pluto Parametro: -debug Parametro: -fd
Come già detto... prendi il Process generato dalla chiamata a exec(), ottieni l'InputStream e verifica cosa accade... può essere che venga sollevata un'eccezione, ma non la potrai mai vedere altrimenti.
Ciao.![]()



Rispondi quotando