Argumentos de linha de comando

Boa tarde!

Estou com dúvidas sobre este exemplo do livro java como programar.
É o seguinte, não conseguir entender de onde args.length vai tirar algum valor para ser igual a 3 para não entrar no if. Quando eu estava testando só entra na condição if e aparece a msg de erro.

package linhaDeComando;

public class InitArray {
	
	public static void main(String[] args) {
		
		//System.out.println(args );
		
		if (args.length != 3) // Onde vai encontrar esses valores? args possui valores?
			System.out.println(
					"Error: Please re-enter the entire command, including\n"+
					"an array size, initial value and increment.");
		else 
		{
		
			int arrayLength = Integer.parseInt ( args [0]);
			int array [] = new int [ arrayLength ];
			
			int initialValue = Integer.parseInt(args [ 1 ] );
			int increment = Integer.parseInt (args [ 2 ] );
			
			for ( int counter = 0; counter < array.length; counter ++)
				array [ counter ] = initialValue + increment * counter;
			
			System.out.printf ( " %s%8s\n", "Index", "Value" );
			
			for ( int counter = 0; counter < array.length; counter ++)
				System.out.printf( "%5d%8d\n", counter, array [ counter ]);
					
		}
	}
}

VLW!

Fala cara! Bem, quando você chama um programa java pela linha de comando:

java SEU_PROGRAMA ARG1 ARG2 ARG3

Esses args são colocados dentro da variavel String[] args da função main, assim para entrar naquele if, basta que você passe uma quantidade diferente de três argumentos, incluindo nenhum argumento que deixaria args com tamanho zero, entendeu?

Abraço

Poderia dar um exemplo de como funciona?

Perceba:

public class Main {
	public static void main(String[] args) {
		for (int i = 0; i < args.length; i++ ) {
			System.out.println("Arg_"+ i +" = "+ args[i]);
		}
	}
}

Após a compilação você terá um Main.class, ai você a executa:

$ java Main primeiro segundo terceiro

saida:

Arg_0 = primeiro
Arg_1 = segundo
Arg_2 = terceiro

Notou? passei três argumentos para o programa e esses foram passadas para o array de strings ARGS dai mostrei eles.

Vc está usando uma IDE?

Abraço

Tó usando o Eclipse.