J'ai rencontré une erreur avec SBT aujourd'hui. Cela peut être mieux montré avec le sbt sbt-version
commande:
Exécuter le 29/05/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
Cours le 01/06/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
Aucune modification (que je sache) de mon SBT ou de l'installation Java.
Des idées sur ce qui pourrait causer ceci ou comment corriger l'erreur?
Je vous remercie!
J'ai trouvé le paquet à l'origine de ce problème: ncurses
. J'ai rétrogradé ncurses
vers la version ncurses-6.0+20170429-1
(J'utilise Arch Linux) et SBT démarre correctement.
Étapes pour 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
Étapes pour Mac: voir https://github.com/jline/jline2/issues/281
Je pense que ce problème a été introduit avec la version 20170506 de ncurses, voir: 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.
J'ai déposé un problème sur l'outil de suivi des problèmes SBT: https://github.com/sbt/sbt/issues/324
Edit: La version 0.13.16 de SBT inclut le correctif pour ce problème.
J'ai eu le même problème, en particulier lorsque la variable d'environnement TERM
est définie sur xterm-256color
. Le réglage sur une valeur différente a résolu le problème pour moi, par exemple.
export TERM=xterm-color
Vous pouvez ajouter export TERM=xterm-color
au sommet de /usr/share/sbt/bin/sbt
parce que $HOME/.sbtconfig
est obsolète.
La commande sbt
n'est qu'un script. Il charge $HOME/.sbtconfig
au tout début, alors venez de mettre
export TERM=xterm-color
comme @ user3113045 l'a indiqué dans le fichier de configuration, sbt fonctionnera. Dans ce cas, vos autres commandes de termes utiliseront toujours xterm-256color
.
Un an a passé ... maintenant cela m'est arrivé.
Donc, ncurses a changé, et la partie sbt correspondante était ... Je suppose ... probablement uniquement mise en œuvre sur la base de tests aléatoires et d'observations/bugs et non de spécifications ni RFC. (Jusqu'à présent, sbt est le seul programme que je connaisse avec ce problème de ncurses.)
Si vous ne pouvez pas simplement pgrade sbt ni rétrograder ncurses, vous pouvez modifier la variable d'environnement TERM comme indiqué dans les autres réponses.
Si votre script sbt est un script bash (le plus souvent, sauf si vous exécutez les fichiers .bat de DOS)
$ file /usr/bin/sbt
/usr/bin/sbt: Bourne-Again Shell script, ASCII text executable
, alors il pourrait suffire d’ajouter cette solution de contournement:
TERM="${TERM/xterm-256color/xterm-color}"
Si vous le pouvez, changez la version de sbt dans build.properties. 13.16 travaillent pour moi.
Je ne peux pas écrire de commentaire car mon score est trop bas, mais la réponse de user3113045 a fonctionné lorsque j'ai ajouté export TERM=xterm-color
à mon .zshrc
fichier
J'ai fait face à ce problème lorsque j'utilise un activateur qui utilise sbt en interne. J'utilise Ubuntu et cette erreur m'a frustré. J'ai commencé à faire face à ce problème quand j'ai couru
$ activator gen-idea (outil qui, selon intellij, est un héritage)
Après cela, j'ai essayé de supprimer tout le cache généré par cet outil.
J'ai supprimé les répertoires .ivy et .sbt de mon dossier personnel et exécuté la commande de compilation de l'activateur cleanFiles, qui a résolu mon problème.