2014-05-12 4 views
7

프로그램이 sbt 내에서 실행될 때 키 입력이 화면에 표시되지 않는 것처럼 보이기를 바랍니다. 나는이 간단한 코드를 컴파일하고 (SBT의 외부) 명령 줄에서 실행하면 내가 입력을 입력하고 모두가 잘 작동으로SBT 내의 콘솔 입력이 화면에 울리지 않습니다.

object ConsoleTest extends App { 
    println("Enter a line:") 
    val input = Console.readLine() 
    println("You entered: " + input) 
} 

, 내가 키 입력을 참조하십시오 다음은 예입니다.
불행히도, &을 컴파일하기 위해 sbt를 사용하면 같은 코드를 실행해도 키 입력이 화면에 나타나지 않습니다. 이것은 당황스러운 경험입니다.
다른 누구도이 차이를 경험 했습니까?
다른 사람들이이 문제가 발생했는지 여부와 키 스트로크 반향을 허용하는 sbt 런타임 매개 변수가 있는지 여부를 확인하기 위해 일부 검색을 수행했습니다. 지금까지 행운이 없습니다.
위의 코드에서 sbt-0.13.2를 사용하고 Java 버전에서이 동일한 차이가 발생하므로 sbt 환경에서 실행되는 것으로 나타납니다.
모든 통찰력을 환영합니다.

+1

당신이 실행중인 OS :

여기에 방법을 지정하는 다양한 설정의 몇 가지 예입니다? 어떤 종류의 단말기를 sbt에서 실행하고 있습니까? – gourlaysama

+0

Windows 7 Pro, MS-DOS 셸, Java 1.7, 스칼라 2.10.4. 명확하지 않은 경우 println이 제대로 작동합니다. SBT에 키 입력이 표시되지 않은 이전 readLine입니다. –

+0

문자가 화면에 표시되지 않더라도 입력이 제대로 인쇄됩니까? 그것은 입력 대기를 멈추는가? – lpiepiora

답변

0

이 질문은 여전히 ​​대답은, 그래서 여기에 내가 스칼라 2.12.1, SBT의 0.13.13.1를 사용하여, 윈도우 10에서 테스트

: 간다, 2.5 세입니다. 테스트 프로그램은 Cmd 및 WSL의 bash에서 잘 작동했습니다.

이전에는이 ​​문제가 JLine 문제의 증상이었습니다. Java 시스템 변수 jline.terminal을 사용하여 JLine 설정을 auto, nonewindows과 같은 값으로 재정의 할 수 있습니다. Here are the complete docs.

C:\work\experiments\sbt\optionTest>sbt run 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project 
[info] Updating {file:/C:/work/experiments/sbt/optionTest/project/}optiontest-build... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/) 
[warn] there was one deprecation warning (since 2.11.0); re-run with -deprecation for details 
[warn] one warning found 
Enter a line: 
asdf 
You entered: asdf 
[success] Total time: 46 s, completed Jan 7, 2017 1:27:27 PM 

C:\work\experiments\sbt\optionTest> sbt "-Djline.terminal=none" run 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project 
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/) 
Enter a line: 
asdf 
You entered: asdf 
[success] Total time: 3 s, completed Jan 7, 2017 1:28:12 PM 

C:\work\experiments\sbt\optionTest> sbt "-Djline.terminal=windows" run 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project 
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/) 
Enter a line: 
asdf 
You entered: asdf 
[success] Total time: 3 s, completed Jan 7, 2017 1:28:26 PM 
관련 문제