A meno che non si sia bloccati su un'antica JVM, java.lang.ProcessBuilder
rende molto più semplice specificare un processo, impostarne l'ambiente, spawnarlo e gestirne i descrittori di file.
Questa classe è utilizzata per creare processi del sistema operativo.
Ogni istanza ProcessBuilder
gestisce una raccolta di attributi di processo. Il metodo start()
crea una nuova istanza Process
con tali attributi. Il metodo start()
può essere richiamato ripetutamente dalla stessa istanza per creare nuovi sottoprocessi con attributi identici o correlati.
...
Avvio di un nuovo processo che utilizza la directory predefinita e dell'ambiente di lavoro è semplice:
Process p = new ProcessBuilder("myCommand", "myArg").start();
Ecco un esempio che avvia un processo con una directory di lavoro modificato e l'ambiente:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory(new File("myDir"));
Process p = pb.start();
fonte
2012-05-23 15:40:23
Quale messaggio mostra esattamente pmd? – Tudor
Descrizione del problema: non utilizzare Runtime.exec() per comandi di esecuzione – kannanrbk
Questa è un'affermazione assurda, senza alcun supporto – ControlAltDel