Argumentos de la línea de comandos

Estoy tratando de detectar si la ‘a’ fue ingresada como el primer argumento de cadena.

public class YourClass { public static void main(String[] args) { if (args.length > 0 && args[0].equals("a")){ //... } } } 

Use el apache commons cli si planea extender ese pasado una sola arg.

“La biblioteca Apache Commons CLI proporciona una API para analizar las opciones de línea de comando pasadas a los progtwigs. También puede imprimir mensajes de ayuda que detallan las opciones disponibles para una herramienta de línea de comandos”.

CLI de Commons admite diferentes tipos de opciones:

  • POSIX como opciones (es decir, tar -zxvf foo.tar.gz)
  • GNU como opciones largas (es decir, du –human-legible –max-depth = 1)
  • Propiedades similares a Java (es decir, java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • Opciones cortas con valor adjunto (es decir, gcc -O2 foo.c)
  • opciones largas con un solo guión (es decir, ant -projecthelp)

Cada progtwig Java comienza con

 public static void main(String[] args) { 

Esa matriz de tipo String que main() toma como parámetro contiene los argumentos de línea de comando para su progtwig. Si el usuario ejecuta su progtwig como

 $ java myProgram a 

entonces args[0] mantendrá la cadena “a”.

Los argumentos de la línea de comando se pasan en el primer parámetro String[] a main() , por ejemplo

 public static void main( String[] args ) { } 

En el ejemplo anterior, args contiene todos los argumentos de línea de comandos.

La breve y dulce respuesta a la pregunta planteada es:

 public static void main( String[] args ) { if( args.length > 0 && args[0].equals( "a" ) ) { // first argument is "a" } else { // oh noes!? } } 

Los argumentos de la línea de comando son accesibles a través del parámetro String[] args del método main .

Para el primer argumento, puedes verificar args[0]

todo el código se vería

 public static void main(String[] args) { if ("a".equals(args[0])) { // do something } } 

Su método main tiene un argumento String[] . Eso contiene los argumentos que se han pasado a sus aplicaciones (a menudo se llama args , pero eso no es un requisito).

Intente pasar el valor a y compare usando el método igual como este:

 public static void main(String str[]) { boolean b = str[0].equals("a"); System.out.println(b); } 

Siga este enlace para saber más sobre el argumento de línea de comando en Java

Como todos han dicho … el método .equals es lo que necesitas.

En la remota posibilidad, usaste algo como:

 if(argv[0] == "a") 

entonces no funciona porque == compara la ubicación de los dos objetos (igualdad física) en lugar de los contenidos (igualdad lógica).

Como “a” de la línea de comando y “a” en la fuente de su progtwig se asignan en dos lugares diferentes, no se puede usar ==. Debe usar el método equals que verificará que ambas cadenas tengan los mismos caracteres.

Otra nota … “a” == “a” funcionará en muchos casos, porque las cadenas son especiales en Java, pero 99.99999999999999% del tiempo que desea utilizar .equals.

Los argumentos de la línea de comando se almacenan como cadenas en los argumentos String array String[] args that is passed to main () `.

 java [program name] [arg1,arg2 ,..] 

Los argumentos de la línea de comando son las entradas que se aceptan desde el símbolo del sistema al ejecutar el progtwig. Los argumentos aprobados pueden ser cualquier cosa. Que se almacena en la matriz args[] .

 //Display all command line information class ArgDemo{ public static void main(String args[]){ System.out.println("there are "+args.length+"command-line arguments."); for(int i=0;i 

Ejemplo:

 java Argdemo one two 

El resultado será:

 there are 2 command line arguments: they are: arg[0]:one arg[1]:two