Problema con los argumentos desde la linea de comandos

Juan Gonz Mej
27 de Noviembre del 2010
Soy nuevo en Java y me he encontrado con un problema que espero me ayudéis a solucionar. Pretendo lanzar una aplicación, utilizando argumentos desde la linea de comandos, por ejemplo, para una aplicación llamada prueba1:
“java prueba1 opcion1” o bien “java prueba1 opcion2” y de esta forma se ejecuten las opciones programadas. He comenzado compilando este código:

class prueba1{


public static void main(String[] args){


if (args[0] == "opcion1" ){

System.out.println("Seleccionada opcion 1");

}else if (args[0] == "opcion2"){

System.out.println("Seleccionada opcion 2");

}else{

System.out.println("Opcion no reconocida");

}

}

}

El código se ha compilado sin problemas, pero con la siguiente llamada:

java prueba1 opcion1

se produce la siguiente salida:

Opcion no reconocida

Lo mismo ocurre con:

java prueba1 opcion2
Opcion no reconocida

Por mera comprobación he introducido una nueva linea en el codigo:

class prueba1{


public static void main(String[] args){


System.out.println("Opcion elegida = " + args[0]);


if (args[0] == "opcion1" ){

System.out.println("Seleccionada opcion 1");

}else if (args[0] == "opcion2"){

System.out.println("Seleccionada opcion 2");

}else{

System.out.println("Opcion no reconocida");

}

}

}

El resultado es el siguiente:

java prueba1 opcion1
Opcion elegida = opcion1
Opcion no reconocida


Creo que mi intención esta clara, reconocer el argumento de la linea de comandos comparando el String de entrada y obrar en consecuencia ¿porque no funciona? ¿como habría que hacerlo?

Saludos y gracias por anticipado