我只是尝试在Groovy中使用JCurses,但我总是得到以下异常:
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();
谷歌告诉我,它可能与类路径(窗口)中的空格有关,但移动库甚至使用类而不是.jar文件都没有成功。
似乎有可能 - 对于常规引用的请求JCurses:http://pleac.sourceforge.net/pleac_groovy/userinterfaces.html
从Groovy shell脚本中清除屏幕的另一种方法也可以解决我的问题。 : - )
答案 0 :(得分:2)
由于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()
答案 1 :(得分:2)
根问题很可能是您的类路径中找不到jcurses.jar
,导致ClassLoader.getSystemClassLoader().getResource("jcurses/system/Toolkit.class")
返回null
。
如果找不到包含本机代码(Linux上为libjcurses.so
或libjcurses64.so
)的C库,则会遇到相关问题。它希望C libary位于找到jcurses.jar
的同一文件夹中。如果它不在那里,你会得到:
java.lang.RuntimeException:找不到jcurses库
答案 2 :(得分:1)
找到另一种清除屏幕的简单方法: - )
print "\n"*80