web-dev-qa-db-ja.com

SBTエラー:「ターミナルの構築に失敗しました。サポートされていない状態にフォールバックしています...」

今日、SBTでエラーが発生しました。 sbt sbt-versionコマンドで最もよく表示できます:

5/29/17で実行:

eric@linux-x2vq:~$ sbt sbt-version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option 
MaxPermSize=256M; support was removed in 8.0
[info] Set current project to eric (in build file:/home/eric/)
[info] 0.13.13

6/1/17で実行:

eric@linux-x2vq:~$ sbt sbt-version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option             
MaxPermSize=256M; support was removed in 8.0
[ERROR] Failed to construct terminal; falling back to unsupported
Java.lang.NumberFormatException: For input string: "0x100"
at Java.lang.NumberFormatException.forInputString(NumberFormatException.Java:65)
at Java.lang.Integer.parseInt(Integer.Java:580)
at Java.lang.Integer.valueOf(Integer.Java:766)
at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.Java:59)
at jline.UnixTerminal.parseInfoCmp(UnixTerminal.Java:233)
at jline.UnixTerminal.<init>(UnixTerminal.Java:64)
at jline.UnixTerminal.<init>(UnixTerminal.Java:49)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
at Java.lang.Class.newInstance(Class.Java:442)
at jline.TerminalFactory.getFlavor(TerminalFactory.Java:209)
at jline.TerminalFactory.create(TerminalFactory.Java:100)
at jline.TerminalFactory.get(TerminalFactory.Java:184)
at jline.TerminalFactory.get(TerminalFactory.Java:190)
at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:123)
at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:117)
at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
at sbt.GlobalLogging$.initial(GlobalLogging.scala:43)
at sbt.StandardMain$.initialGlobalLogging(Main.scala:64)
at sbt.StandardMain$.initialState(Main.scala:73)
at sbt.xMain.run(Main.scala:29)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:18)
at xsbt.boot.Boot$.runImpl(Boot.scala:41)
at xsbt.boot.Boot$.main(Boot.scala:17)
at xsbt.boot.Boot.main(Boot.scala)

[info] Set current project to eric (in build file:/home/eric/)
[info] 0.13.13

SBTまたはJavaセットアップのいずれにも変更はありません(私は知っています)。

これを引き起こしている可能性があるもの、またはエラーを修正する方法についてのアイデアはありますか?

ありがとうございました!

65
ericky

この問題を引き起こすパッケージを見つけました:ncursesncursesをバージョンncurses-6.0+20170429-1(Arch Linuxを使用しています)にダウングレードすると、SBTは問題なく起動します。

Arch Linuxの手順:

cd /var/cache/pacman/pkg
Sudo pacman -U ncurses-6.0+20170429-1-x86_64.pkg.tar.xz # or some other older version

Macの手順: https://github.com/jline/jline2/issues/281 を参照

この問題はncursesバージョン20170506で導入されたと思います: http://invisible-island.net/ncurses/NEWS.html#index-t20170506

+ modify tic/infocmp display of numeric values to use hexadecimal when
      they are "close" to a power of two, making the result more readable.

SBT課題トラッカーに問題を提出しました: https://github.com/sbt/sbt/issues/324

Edit:SBTバージョン0.13.16には、この問題に対する修正が含まれています。

53
amuttsch

特にTERM環境変数がxterm-256colorに設定されている場合、同じ問題が発生しました。それを別の値に設定すると、問題が修正されました。

export TERM=xterm-color
148
user3113045

export TERM=xterm-colorは廃止されているため、/usr/share/sbt/bin/sbtの先頭に$HOME/.sbtconfigを追加できます。

22

sbtコマンドは単なるスクリプトです。最初に$HOME/.sbtconfigをロードするので、

export TERM=xterm-color

confファイルで@ user3113045が言ったように、sbtは動作します。その場合、他の用語コマンドは引き続きxterm-256colorを使用します。

18
ninjapapa

1年が経ちました...今、それは私に起こりました。


したがって、ncursesは変更され、対応するsbtの部分は...推測されます...おそらく、ランダムな推測テストと観測/バグに基づいて実装され、仕様ではありませんまた、RFC。 (これまでのところ、sbtは私が知っているこのncursesの問題を持つ唯一のプログラムです。)

単にpgrade sbtdowngrade ncursesもできない場合は、他の回答で述べたようにTERM環境変数を変更できます。

些細な修正:

Sbtスクリプトがbashスクリプトである場合(おそらく、DOSの.batファイルを実行しない限り)

$ file /usr/bin/sbt
/usr/bin/sbt: Bourne-Again Shell script, ASCII text executable

、この回避策を追加するだけで十分な場合があります。

TERM="${TERM/xterm-256color/xterm-color}"
6
comonad

可能であれば、build.propertiesのsbtバージョンをそれ以上に変更します。 13.16私のために働きます。

2
Majid Hosseini

スコアが低すぎるためコメントを書くことはできませんが、export TERM=xterm-color.zshrcファイルに追加すると、user3113045の答えが機能しました

0
Patrick White

内部でsbtを使用するアクティベーターを使用しているときに、この問題に直面しました。私はUbuntuを使用していますが、このエラーは私をイライラさせました。私が走ったときにこの問題に直面し始めました

$アクティベータgen-idea(intellijによるレガシーツール)

この後、このツールが生成したすべてのキャッシュを削除しようとしました。

ホームフォルダーから.ivyおよび.sbtディレクトリを削除し、アクティベーターcleanFilesコンパイルコマンドを実行して問題を解決しました。

0
zee