cygwin環境でsbtが思ったように動かなかった件

表題の件。
始めるsbt 手動インストール
http://www.scala-sbt.org/0.13/tutorial/ja/Manual-Installation.html

を参考にしてcygwin環境下でsbtをインストールしたはよいものの、sbt consoleを実行したあとにうまく動いてくれない。
「println("Hello")」とかを入力してからEnterを押しても無反応。

色々調べていたところ、原因が分かった。
Cygwin + Interpreters(Jline) + Carriage return = solved!
http://softwaremavens.blogspot.jp/2009/10/cgwin-interpretersjline-carriage-return.html

日本語でまとめるとこういうことらしい。

  • 多くのJavaベースインタプリタで使われているJLineは、実行環境(ホストOS?)から使用される改行コードを推定する。
  • cygwin環境では改行コードにLFを使用することがある*1
  • cygwin環境はホストOSはWindowsである。
  • Windows環境は改行コードにCR+LFを使用する。

これらのことが合わさり、結果として「Windows環境で動くcygwin上でJLineを使用したインタプリタを使用すると改行コードに不整合が生じてうまく動かない(ことがある)」という現象が発生する模様。
上記サイトでは解決策の1つとして、JLineを使用しているインタプリタを起動する際、Java VMの起動時引数として「-Djline.terminal=jline.UnixTerminal」を与える、というものが示されている。
自分はこの解決策で問題が解消した。ただ、上記ロジックを鑑みるに、cygwin側の改行コード設定を変更することでも対応できると思われる。

*1:インストール時の設定による。