Как использовать jcurses из Groovy
Я просто пытался использовать JCurses из Groovy, но всегда получаю следующее исключение:
Caused by: java.lang.NullPointerException at
jcurses.system.Toolkit.getLibraryPath(Toolkit.java:97) at
jcurses.system.Toolkit.<clinit>(Toolkit.java:37)
Toolkit.java:37:
String url = ClassLoader.getSystemClassLoader()\
.getResource("jcurses/system/Toolkit.class").toString();
Google сказал мне, что это может быть связано с пробелами внутри classpath (windows), но перемещение библиотеки и даже использование классов вместо файла.jar не увенчалось успехом.
Похоже, что это возможно - обращайтесь за отличными ссылками JCurses: http://pleac.sourceforge.net/pleac_groovy/userinterfaces.html
Другой способ очистки экрана из скрипта Groovy также решил бы мою проблему.:-)
3 ответа
Поскольку jline входит в состав Groovy, вы не можете использовать класс jline.ANSIBuffer.ANSICodes
(как показано на странице, на которую вы ссылаетесь)
print jline.ANSIBuffer.ANSICodes.clrscr()
Вам также может понадобиться сделать:
print jline.ANSIBuffer.ANSICodes.gotoxy( 1, 1 )
Если вы хотите, чтобы курсор вернулся в верхнюю часть экрана
Чтобы нарисовать цветной текст, вы можете сделать:
println new jline.ANSIBuffer().append( 'Some ' )
.red( 'Red' )
.append( ' text' )
.toString()
Коренная проблема, скорее всего, в том, что jcurses.jar
не был найден на вашем пути к классу, в результате чего ClassLoader.getSystemClassLoader().getResource("jcurses/system/Toolkit.class")
возвращать null
,
Есть связанная проблема, с которой вы можете столкнуться, если не можете найти библиотеку C, содержащую нативный код (libjcurses.so
или же libjcurses64.so
на Linux). Ожидается, что библиотека C находится в той же папке, где она была найдена jcurses.jar
, Если его там нет, вы получите:
java.lang.RuntimeException: не удалось найти библиотеку jcurses
Нашел другой тривиальный способ очистки экрана:-)
print "\n"*80