如何使用groovy的jcurses

时间:2012-03-28 08:16:29

标签: groovy windows-shell jcurses

我只是尝试在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脚本中清除屏幕的另一种方法也可以解决我的问题。 : - )

3 个答案:

答案 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.solibjcurses64.so)的C库,则会遇到相关问题。它希望C libary位于找到jcurses.jar的同一文件夹中。如果它不在那里,你会得到:

  

java.lang.RuntimeException:找不到jcurses库

答案 2 :(得分:1)

找到另一种清除屏幕的简单方法: - )

print "\n"*80