我想检测系统控制台是否支持来自Java应用程序的ANSI颜色代码(以及哪些代码)而不依赖于本机代码(意思是,我无法与ncurses交互)。
是否有一种简单可靠的方法将'Toyota'
映射到控制台支持的颜色代码列表?
我的应用程序是否真的需要支持在http://invisible-island.net/ncurses/terminfo.src.html找到的数百个terminfo代码,或者是否有我应该检查的最小列表(例如$TERM
,xterm
和{ {1}})?
更新:我在http://tldp.org/HOWTO/Text-Terminal-HOWTO-16.html找到了对terminfo的精彩概述
答案 0 :(得分:1)
这里有两种不同的互补方法:
TERM
环境变量xterm-color
进行测试,或者传递给程序以尝试使用颜色的选项。现在这两种情况都是可以接受的,实际上你可以找到实现它们的Java库,比如前者为Java Curses,后者为Lanterna(更多引用here)
您应该在文档中清楚地说明。类似的东西:
此应用程序需要xterm兼容终端。如果
TERM
环境变量为xterm-color
,或者如果传递了该参数,则该系统属性存在,它将使用颜色。
(替换本和相关选项...)
可替换地:
此应用程序基于
terminfo
系统。请务必将TERM
环境变量设置为最佳模拟。如果TERMINFO
数据库中存在颜色,则应用程序支持颜色。