Duplicate possible:
Quelle est la différence entre une propriété système et une variable d’environnement
Quelle est la différence entre System.getenv () et System.getProperty ()?
Lorsque nous exécutons une commande à l'aide de Processbuilder, nous pouvons définir les variables d'environnement, à savoir:
String[] vCmd = { System.getenv("ANT_HOME") + "/bin/ant", "-f",
ANT_BUILD_FILE, TARGET };
ProcessBuilder pb = new ProcessBuilder(vCmd);
Map<String, String> 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);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
pb.wait();
}
catch(Exception e)
System.out.println(e.getMessage());
}
Si je définis 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. Java sont spécifiées par en passant le -D
sur la machine virtuelle Java (et peut être défini par programme).
System.getenv()
est destiné aux variables d'environnement du système d'exploitation, alors que System.getProperty()
est destiné aux arguments de la machine virtuelle Java passés en tant que -DpropName=value
to Java ( Java
).