2015-02-18 5 views
8

scala Programm läuft Ich habe ein sehr einfaches scala Programm:Eingabeaufforderung für Benutzereingaben, wenn sie mit sbt

object TakeInputs { 
    def main(args: Array[String]) { 
    val name = readLine("What is your name?") 
    println(name) 
    } 
} 

Wenn ich versuche, das es wartet nicht auf Benutzereingaben und das Programm mit sbt "project myproject" "run-main TakeInput" laufe nur endet mit What is your name?null als der Ausgang.

Gibt es eine Möglichkeit, sbt auf Benutzereingaben warten zu lassen (was passiert, wenn "readLine" in der sbt-Konsole ausgeführt wird)? Ich kann die Eingaben als Befehlszeilenparameter bereitstellen, aber ich habe eine Menge von ihnen, und ich möchte das Programm benutzerfreundlicher machen, indem ich Nachrichten anzeigen, die anzeigen, was der Benutzer als nächstes eingeben soll. Vielen Dank.

+0

BTW wie es jetzt aussieht 'ist scala.io.StdIn.readLine' – matanster

Antwort

8

Folgendes Ihre build.sbt hinzufügen

connectInput in run := true 

Von the sbt documentation in Configuring Input

+0

Vielen Dank! Das funktioniert großartig! Ich bin sehr neu zu sbt und ich habe nicht in der Dokumentation nachsehen. – Xiang

+0

Ich habe nur ein paar Stunden verschwendet, um das herauszufinden. Vielen Dank. – zzztimbo