En esta entrada veremos para qué
sirve el parámetro args del método main.
El parámetro args es un array de Strings que debe
aparecer obligatoriamente como argumento del método main en un programa Java.
public
static void main(String[] args){
…
}
Aunque se le suele dar el nombre
args, no es obligatorio que este parámetro se llame así, podemos darle el
nombre que queramos. Por ejemplo sería valido un método main escrito así:
public
static void main(String[] argumentos){
…
}
Para qué sirve el array String [] args de main?
Trabajando con un entorno de
desarrollo a menudo nos olvidamos de que un programa java se puede ejecutar
desde la línea de comandos del sistema operativo con la orden:
C:\> java nombrePrograma
Además, mediante esta orden, podemos
enviar valores al programa.
Por ejemplo, si tenemos un programa
que se llama ordenar que ordena 5
números enteros, pero en lugar de leerlos por teclado los números se le pasan al
programa como argumentos, este programa lo ejecutaríamos así:
C:\> java ordenar 4 6 3 7 1
Los valores que se envían se
deben escribir a continuación del nombre del programa y separados por un espacio en
blanco.
El array array args
que aparece como argumento
del método main es el encargado
de recoger y almacenar estos valores.
Como args es un array de Strings
contendrá cada uno de estos valores como un String:
Contenido
del Arrays args:
La propiedad length del array args (args.length) contiene el número de valores
enviados al programa.
Siempre que trabajemos con valores recibidos desde la línea de comandos
debemos controlar el número de valores recibidos para evitar que se produzcan
errores al procesar el array.
Ejemplo.
Programa llamado saludo que recibe
desde la línea de comandos del sistema operativo un nombre de persona y lo
muestra por pantalla.
public class saludo{
public static void main(String[] args) {
if (args.length > 1) { //si hay más de 1 parámetro
System.out.println("Hay demasiados parámetros. Debe escribir: saludo nombrePersona");
} else if (args.length == 0) { //si no hay parámetros
System.out.println("Falta el nombre de la persona");
} else {
System.out.println("Buenos Días " + args[0]);
}
}
}
Para
ejecutarlo se debe escribir en la línea de comandos:
>java saludo nombreCualquiera
Por ejemplo:
> java saludo Juan
La salida del programa sería en este caso:
Buenos Días Juan
Debemos tener en cuenta que todos los valores que se
envían a main desde la línea de comandos son de tipo String. Si uno de los
parámetros introducido en la línea de comandos es un número, el programa lo
tratará como un String, por lo que para tratarlo como número y poder operar matemáticamente
con él habrá que hacer la conversión al tipo numérico adecuado.
Ejemplo
El siguiente programa llamado longcir recibe desde la línea de comandos el valor del radio de una
circunferencia y calcula y muestra la longitud de la circunferencia.
public class longcir {
public static void main(String[] args) {
double radio;
if (args.length > 1) { //si hay más de 1 parámetro
System.out.println("Hay demasiados parámetros. Debe escribir: longcir valorRadio");
} else if (args.length == 0) { //si no hay parámetros
System.out.println("Falta el valor del radio");
} else {
radio = Double.parseDouble(args[0]); //Se convierte el argumento a double
System.out.println("Longitud de la circunferencia: " + 2 * Math.PI * radio);
}
}
}
Ejemplo
Programa echo que muestra los argumentos
introducidos en la línea de comandos.
public class echo {
public static void main(String[] args) {
int i;
for (i = 0; i < args.length; i++) {
System.out.print(args[i]+ " ");
}
System.out.println();
}
}
Enviar valores a main en Netbeans
Si
estamos utilizando un IDE podemos ejecutar programas que reciben valores desde
la línea de comandos desde el propio IDE sin necesidad de ejecutarlo desde la
línea de comandos.
En
NetBeans se realiza de la siguiente forma:
Botón
derecho sobre el proyecto y seleccionamos Properties.
En la
ventana que aparece pulsamos en Run y
escribimos los parámetros en Arguments
Estos argumentos serán los que reciba main en el array args cuando ejecutemos el programa.
Thanks, that was very helpful
ResponderEliminarGracias, muy buena explicación!
ResponderEliminarexcelente, te mandaste hermano!!! :)
ResponderEliminargracias me fue de mucha ayuda gracias
ResponderEliminarMuchas gracias a todos!!!!
ResponderEliminarGRANDE HENRY!!!
EliminarEnhorabuena por la explicación, me ayudaste mucho. Gracias
ResponderEliminarMuchas gracias Enrique, te dejo un link donde explico un par de detalles mas del método main, pero este post esta excelente!
ResponderEliminarsaludos!
http://java-white-box.blogspot.com.ar/2013/05/javaplayer-metodo-main-main-firma-del.html
Hola está bastante bien el artículo pero no acabas de responder para que se usa?osea se pone por si acaso por consola queremos meter valores por parámetro? es ese el porqué?En fin...
ResponderEliminarMuchas gracias! me sacaste de una duda que me molestaba mucho :)!
ResponderEliminarGracias capo! Con este blog se hace innecesario asistir a clases ajajajjaa
ResponderEliminargracias, me sirvio de mucho.
ResponderEliminarGracias a todos por seguir el blog ;)
ResponderEliminarNecesito pasar como parametros una string de campos de una tabla cualquiera, esa misma tabla y un string de comparación
ResponderEliminarComo se puede hacer?
Saludos
Muy completo, gracias! Justo lo que necesitaba
ResponderEliminarinfinitas gracias entendi
ResponderEliminarMe fue de mucha ayuda, muchas gracias!
ResponderEliminarllevo programando un tiempo y esta es la primera vez que me explican bien lo de args[] en main() xD. gracias
ResponderEliminarDe pm explicado. Si señó ahora entiendo esa cosa (tan rarita ella)
ResponderEliminarpor fin mis dudas, han sido resueltas. Muchisimas gracias!!
ResponderEliminarGracias, me alegro de que os haya sido útil.
Eliminarno me importa
Eliminarsoys un capo gracias loco
ResponderEliminarExcelente! Mejor explicado no pudo haber sido!
ResponderEliminarGracias!! ;)
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarme pone que no se ha encontrado o cargado la clase principal
ResponderEliminarCcuándo ello ocurre debes revisar la versión de Java con la que compilaste, debe ser compatible con la versión de java que tienes instalada, o actualizas el jre o compilas con una versión más antigüa, saludos!.
EliminarLeonardo Baini.
Gracias se entiende muy bien
ResponderEliminarExcelente explicación!!!
ResponderEliminarHola, muchas gracias por la explicación, siempre tuve esa duda, desde la universidad XDD
ResponderEliminarexcelente!
ResponderEliminarGracias excelente información
ResponderEliminarGracias men
ResponderEliminarMil gracias me ayudó mucho, más en la parte de como hacerlo en un IDE como Netbeans.
ResponderEliminarVigente.
ResponderEliminarSaludos! Me sirvio de mucho la información, los ejemplos me ayudarón mucho y la inforamación sobre el IDE NETBEANS me enseño otra forma de poner los parámetros en el IDE.
ResponderEliminarTa weno, se entiende super facil 👍
ResponderEliminarQue buena explicacion, ha sido la mas clara de muchas que he escuchado.
ResponderEliminarGracias
EliminarYo ya tenía conocimiento sobre scripting en Linux y utilizaba los argumentos para algunos. Al saber que se podía hacer los mismo en java me ha volado la cabeza, además de que no sabia para que servía String[] args.
ResponderEliminar