Ecrire sur l’entrée standard d’un programme à l’aide d’un script shell

Je souhaite envoyer du texte au programme Java suivant à partir de la ligne de commande Unix (bash), afin qu’il imprime le texte entré. Comment puis-je écrire un script shell qui enverra la chaîne “Print this” au programme Java?

import java.util.Scanner; public class ReadStuff{ public static void main(Ssortingng[] args){ Scanner scan = new Scanner(System.in); System.out.println("Enter some text:"); System.out.println(scan.nextLine()); } } 

Utiliser l’ echo

 echo "Print this" | java ReadStuff 

Notez que cela va sortir:

 Enter some text: Print 

Parce que vous appelez Scanner.next() qui lit le mot suivant, pas la ligne entière.

Ou alternativement, si vous avez des choses dans un fichier:

 cat file_with_Print_this | java ReadStuff