web-dev-qa-db-fra.com

Différence entre System.getenv () et System.getProperty ()

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?

77
user1731553

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).

159
T.J. Crowder

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 ).

28
Bhesh Gurung