我今天遇到了与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设置没有任何改变(我知道)。
关于可能导致此错误或如何解决错误的任何想法?
谢谢!
答案 0 :(得分:136)
我遇到了同样的问题,尤其是当TERM
环境变量设置为xterm-256color
时。将它设置为不同的值可以解决我的问题,例如
export TERM=xterm-color
答案 1 :(得分:52)
我找到导致此问题的软件包: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的步骤:请参阅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/3240
编辑:SBT版本0.13.16包含此问题的修复程序。
答案 2 :(得分:21)
您可以将export TERM=xterm-color
添加到/usr/share/sbt/bin/sbt
的顶部,因为不推荐使用$HOME/.sbtconfig
。
答案 3 :(得分:17)
sbt
命令只是一个脚本。它在一开始就加载$HOME/.sbtconfig
,所以只需加上
export TERM=xterm-color
正如@ user3113045在conf文件中说的,sbt会起作用。在这种情况下,您的其他术语命令仍将使用xterm-256color
。
答案 4 :(得分:6)
一年过去了...现在发生在我身上。
因此, ncurses 确实发生了变化,并且相应的 sbt 部分是...我想...可能仅基于随机猜测的测试和观察/错误以及没有任何规范或RFC。 (到目前为止,sbt是我所知道的唯一具有此ncurses问题的程序。)
如果您不能简单地升级sbt 或降级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}"
答案 5 :(得分:3)
这解决了我的问题(Linux用户):
仅此而已,然后您就可以出发了。
答案 6 :(得分:2)
如果可以,请将build.properties中的sbt版本更改为更高版本。 13.16为我工作。
答案 7 :(得分:1)
我的分数太低,因此我无法发表评论,但是当我在export TERM=xterm-color
文件中添加.zshrc
时,user3113045的答案起作用了
答案 8 :(得分:0)
当我使用内部使用sbt的激活器时,我遇到了这个问题。 我正在使用Ubuntu,并且此错误使我感到沮丧。 跑步
时,我开始面对这个问题$激活器gen-idea(根据intellij的工具为旧版)
此后,我尝试删除此工具生成的所有缓存。
我从主文件夹中删除了.ivy和.sbt目录,并运行了activator cleanFiles编译命令,从而解决了我的问题。
答案 9 :(得分:0)
对于Ubuntu 20.04用户,请打开您的终端并运行下面的CMD
例如:-
#!/usr/bin/env bash
export TERM=xterm-color
set +e