bah, só lendo a documentação certinho, mas você pode passar parametros diversos, como por exemplo setar o tamanho da memória heap, ou o tipo do garbage collector a ser usado.
Por exemplo se você utilizar -server a jvm será utilizada com uma memória maior e com um garbage collector específico.
Tem documentos no site da sun que explicam, vou procurar o link e depois posto aqui.
Caso vc não esteje falando dos argumentos da JVM
serve para vc trabalhar em console, ou customizar o funcionamento do seu programa,
por exemplo, ao inves de ler uma propriedade num arquivo,
tu podes permitir que o usuario coloque na linha de comando.
Você simplesmente passa parâmetros para seu programa, que vai tratá-los conforme você tiver programado para tal.
Exemplo:
public class Main
{
public static void main(String[] args)
{
System.out.println("Argumentos recebidos:\n");
for (int i = 0; i < args.length; i++)
System.out.println(i + ": " + args[i]);
}
}
Aí, utilizando a linha de comando:
javac Main.java
java Main -t -h Teste 7 8 “-t -h Teste 7 8”
A saída será:
0: -t
1: -h
2: Teste
3: 7
4: 8
5: -t -h Teste 7 8
Na prática, você poderia ter uma verificação no main em que se fosse passado um “-t”, por exemplo, ele executasse de um modo diferente ou fizesse mais alguma coisa além do que faria se não recebesse parâmetros.