Shell script et java paramètre

J'ai écrit le script run.sh ci-dessous pour l'appel d'une classe java :

java -cp . Main $1 $2 $3 $4

Voici ma classe java (il affiche juste le args) :

public class Main {
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

C'est de travailler, à moins que j'essaie de passer un paramètre qui contient un espace. Par exemple :

./run.sh This is "a test"

affiche :

This
is
a
test

Comment pourrais-je modifier mon script shell et/ou de changer ma syntaxe du paramètre à transmettre le paramètre "un test" non modifiée ?

OriginalL'auteur Arnaud | 2012-05-14