1

我只是尝试在 Groovy 中使用 JCurses,但总是遇到以下异常:

Caused by: java.lang.NullPointerException at    
    jcurses.system.Toolkit.getLibraryPath(Toolkit.java:97) at 
    jcurses.system.Toolkit.<clinit>(Toolkit.java:37)

工具包.java:37:

    String url = ClassLoader.getSystemClassLoader()\
            .getResource("jcurses/system/Toolkit.class").toString();

谷歌告诉我它可能与类路径(windows)中的空格有关,但移动库甚至使用类而不是 .jar 文件都没有成功。

这似乎是可能的 - groovy 参考的恳求 JCurses:http ://pleac.sourceforge.net/pleac_groovy/userinterfaces.html

从 Groovy shell 脚本中清除屏幕的另一种方法也可以解决我的问题。:-)

4

3 回答 3

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()
于 2012-03-28T08:19:05.120 回答
2

根本问题很可能jcurses.jar是在您的类路径中找不到,导致ClassLoader.getSystemClassLoader().getResource("jcurses/system/Toolkit.class")返回null.

如果找不到包含本机代码(libjcurses.solibjcurses64.so在 linux 上)的 C 库,您可能会遇到相关问题。它希望 C 库位于它找到的同一文件夹中jcurses.jar。如果它不存在,您将获得:

java.lang.RuntimeException:找不到 jcurses 库

于 2012-08-29T21:56:42.777 回答
1

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

print "\n"*80
于 2012-03-28T09:15:01.013 回答