そのため、学校での課題のために、大学で一部の学生を管理するプログラムを Java で作成する必要があります。ユーザーは多くの関数を呼び出すことができますが、「追加」のテストから始めました。
私の教授は、入力のリダイレクトを使用することをお勧めします。これは、多くのタイピングをしなくても、プログラムを何度も簡単にテストできるためです。ここで問題です。
echo `< input.txt`
add Student Name 123 Street,City,Province,Postal Code q
#Input rediraction ate my newlines
cat input.txt
add
Student Name
Street,City,Province,Postal Code
q
#What I actually want to run
java -cp . TestCollege < input.txt #fail horribly
ご覧のとおり、入力を区切るために使用する改行文字が bash によって削除されるため、プログラムがクラッシュします。対話モードで実行すると、Scanner.getLine() は入力が発生するまでブロックされるだけだからです。
プログラムに改行を使用して入力を与える方法については、Windows「cmd」では正常に機能するようですが、「bash」では機能しないようです。