ejecutar - pasar parametros por linea de comandos java




¿Cuál es la diferencia entre los argumentos del programa y los argumentos de VM? (4)

Los argumentos del programa entran en el método main ():

public static void main(String[] args) // here

Encontré solo cuando puse -Dcontext=web en los argumentos de VM, el valor se puede leer con el método System.getproperty . Me pregunto cuál es la diferencia entre esos dos?


Los argumentos del programa están disponibles a través de los argumentos [] de su método principal (String args [])


[![enter image description here][1]][1]Program Argument: Program arguments are arguments that are passed to your application, which are accessible via the "args" String array parameter of your main method. 

VM Argument: : VM argument are environment or system argument that needed by JVM to execute program. VM arguments is read from system property as below java instruction.

System.getProperty(sysProp1)

Code Snippet: 
public static void main(String[] args) {
        String sysProp1 = "sysProp1";
        System.out.println("\t System Propery Name:" + sysProp1 + ", Value:" + System.getProperty(sysProp1));
        System.out.println("\t Program Variable Test Propery Name:" + args[0]);
    }

There are Two way to pass these two params values.
From Eclipse:

  [1]: https://i.stack.imgur.com/7c0dv.jpg

Command Line Argument: 
java -cp projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar com.first.jobs.IndexJob testing -DsysProp1=testing

  • Argumentos del programa - argumentos que normalmente pasamos a nuestro programa. Se puede acceder a este tipo de parámetros utilizando la matriz de cadenas "args" en el método principal.
  • Argumentos de VM: argumentos que se pasan al intérprete de Java.




eclipse