SBT错误:";终端建设失败;退回到不受支持的状态……”;
我今天遇到了一个SBT错误。最好使用SBT错误:";终端建设失败;退回到不受支持的状态……”;,sbt,Sbt,我今天遇到了一个SBT错误。最好使用sbt sbt version命令显示: 2017年5月29日运行: 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/e
sbt sbt version
命令显示:
2017年5月29日运行:
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
2017年6月1日运行:
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
eric@linux-x2vq:~$sbt sbt版本
Java HotSpot(TM)64位服务器VM警告:忽略选项
最大粒径=256M;支持在8.0中被删除
[错误]构造终端失败;回到无支撑状态
java.lang.NumberFormatException:对于输入字符串:“0x100”
位于java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
在java.lang.Integer.parseInt(Integer.java:580)处
位于java.lang.Integer.valueOf(Integer.java:766)
位于jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59)
位于jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:233)
在jline.UnixTerminal.(UnixTerminal.java:64)
在jline.UnixTerminal.(UnixTerminal.java:49)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于java.lang.Class.newInstance(Class.java:442)
位于jline.TerminalFactory.getFlavor(TerminalFactory.java:209)
在jline.TerminalFactory.create(TerminalFactory.java:100)
在jline.TerminalFactory.get(TerminalFactory.java:184)
在jline.TerminalFactory.get(TerminalFactory.java:190)
支持sbt.ConsoleLogger$.Ansis(ConsoleLogger.scala:123)
在sbt.ConsoleLogger$(ConsoleLogger.scala:117)
在sbt.ConsoleLogger$(ConsoleLogger.scala)时
在sbt.globalloging$.initial(globalloging.scala:43)
在sbt.StandardMain$.initialGloballing(Main.scala:64)
在sbt.StandardMain$.initialState(Main.scala:73)
在sbt.xMain.run(Main.scala:29)
在xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
在xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
在xsbt.boot.Launch$.run(Launch.scala:109)
在xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
在xsbt.boot.Launch$.Launch(Launch.scala:117)
在xsbt.boot.Launch$.apply(Launch.scala:18)
在xsbt.boot.boot$.runImpl处(boot.scala:41)
在xsbt.boot.boot$.main处(boot.scala:17)
位于xsbt.boot.boot.main(boot.scala)
[信息]将当前项目设置为eric(在生成文件中:/home/eric/)
[信息]0.13.13
我的SBT或Java设置都没有变化(据我所知)
关于什么可能导致这种情况,或者如何修复错误,有什么想法吗
谢谢大家! 我找到了导致此问题的包:
ncurses
。我将ncurses
降级为版本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的步骤:请参阅
我认为这个问题是在ncurses版本20170506中引入的,请参见:
我在SBT问题追踪器上提交了一个问题:
编辑:SBT版本0.13.16包含了此问题的修复程序。我也有同样的问题,尤其是当
术语
环境变量设置为xterm-256color
时。将其设置为不同的值为我解决了这个问题,例如
export TERM=xterm-color
sbt
命令只是一个脚本。它从一开始就加载了$HOME/.sbtconfig
,所以只需将
export TERM=xterm-color
正如@user3113045在conf文件中所说,sbt将起作用。在这种情况下,您的其他term命令仍将使用
xterm-256color
您可以将export term=xterm color
添加到/usr/share/sbt/bin/sbt
的顶部,因为$HOME/.sbtconfig
已不推荐使用。如果可以,请将build.properties中的sbt版本更改为更高版本。13.16为我工作 一年过去了。。。现在它发生在我身上
所以,ncurses确实发生了变化,相应的sbt部分是……我想。。。可能仅基于随机猜测的测试和观察/错误实施,而不是任何规范或RFC。(到目前为止,sbt是我所知道的唯一一个有ncurses问题的课程。) 如果您不能简单地升级sbt或降级ncurses,您可以更改其他答案中提到的术语环境变量 琐碎的修复: 如果您的sbt脚本是一些bash脚本(很可能,除非您运行DOS.bat文件) ,则添加此解决方案就足够了:
TERM="${TERM/xterm-256color/xterm-color}"
我在使用内部使用sbt的activator时遇到了这个问题。 我正在使用Ubuntu,这个错误让我很沮丧。 我在跑步时就开始面对这个问题 $activator gen idea(根据intellij是传统的工具) 在此之后,我尝试删除该工具生成的所有缓存
我从我的主文件夹中删除了.ivy和.sbt目录,并运行了activator cleanFiles编译命令,解决了我的问题。我不能写评论,因为我的分数太低,但是当我将
导出术语=xterm color
添加到我的.zshrc
文件中时,user3113045的答案起了作用。这解决了我的问题(Linux用户):
就这些,然后你就可以开始了。对于Ubuntu 20.04用户,打开终端并运行下面的CMDs
- 转到此“/usr/share/sbt/bin”目录($cd/usr/share/sbt/bin)
- 授予编辑文件的权限($sudo chmod-R 777 sbt)
- 打开此目录中的sbt文本文件($nano-sbt)
- 在顶部添加“export TERM=xterm color”命令并保存(Ctrl+X)
我也有同样的问题。问题是,
infocmp
的color#0x100
有一个十六进制值,jline.UnixTerminal无法解析该值。该错误已经修复:感谢您的支持和您在github上的帖子。我在昨天的openSUSE Tumbleweed更新之后立即注意到了这个问题
$ file /usr/bin/sbt
/usr/bin/sbt: Bourne-Again shell script, ASCII text executable
TERM="${TERM/xterm-256color/xterm-color}"
#!/usr/bin/env bash
export TERM=xterm-color
set +e