Duplication possible:
Quelle est la différence entre une propriété System et une variable d’environnement
Quelle est la différence entre System.getenv () & System.getProperty ()?
Lorsque nous exécutons une commande à l’aide de Processbuilder, nous pouvons définir les variables d’environnement, à savoir:
Ssortingng[] vCmd = { System.getenv("ANT_HOME") + "/bin/ant", "-f", ANT_BUILD_FILE, TARGET }; ProcessBuilder pb = new ProcessBuilder(vCmd); Map env = pb.environment(); env.put("CLASSPATH", antHome+"/lib/ant.jar:" + antHome+"/lib/ant-launcher.jar:" + antHome+"/lib/ant-nodeps.jar:" ); try{ Process process = pb.start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); Ssortingng line; while ((line = br.readLine()) != null) { System.out.println(line); } pb.wait(); } catch(Exception e) System.out.println(e.getMessage()); }
Si j’ai défini certaines propriétés à l’aide de System.setProperties () avant cette méthode, est-il disponible pour ce processus démarré par ProcessBuilder?
getenv
obtient une variable d’environnement . getProperty
obtient une propriété Java. Les variables d’environnement sont spécifiées au niveau du système d’exploitation. Les propriétés Java sont spécifiées en passant l’option -D
à la JVM (et peuvent être définies par programmation).
System.getenv()
est destiné aux variables d’environnement du système d’exploitation, tandis que System.getProperty()
est destiné aux arguments JVM transmis en tant que -DpropName=value
au lanceur d’application Java ( java
).