1

我想在 64 位 Ubuntu 上使用 Jcurses 和 Scala。不幸的是,我没有找到任何关于这个主题的教程。有谁能够帮我!

我的测试程序“testjcurses.scala”

import jcurses.system._
object TestJcurses {
  def main(args:Array[String]) {
    println("okay")
    Toolkit.init()
    }
  }

我通过以下方式处理它:

fsc -cp ~/software/Java/jcurses/lib/jcurses.jar:~/software/Java/jcurses/src -d . -Djava.library.path=~/software/Java/jcurses/lib testjcurses.scala 
scala -cp ~/software/Java/jcurses/lib/jcurses.jar:~/software/Java/jcurses/src:.  -Djava.library.path=~/software/Java/jcurses/lib  TestJcurses

结果是:

okay
java.lang.NullPointerException
    at jcurses.system.Toolkit.getLibraryPath(Toolkit.java:97)
    at jcurses.system.Toolkit.<clinit>(Toolkit.java:37)
    at TestJcurses$.main(testjcurses.scala:9)
    at TestJcurses.main(testjcurses.scala)
   ..........

有谁能够帮我?

4

1 回答 1

1

不幸的是,您不能~像这样在 bash 中使用 -~仅在(未引用的)空格之后才扩展到您的主目录(从技术上讲,在 bash 单词的开头,但“在空格之后”是简单的版本)。看看你的命令行是如何扩展的:

$ echo scala -cp ~/software/Java/jcurses/lib/jcurses.jar:~/software/Java/jcurses/src:.  -Djava.library.path=~/software/Java/jcurses/lib  TestJcurses
scala -cp /Users/pgiarrusso/software/Java/jcurses/lib/jcurses.jar:~/software/Java/jcurses/src:. -Djava.library.path=~/software/Java/jcurses/lib TestJcurses

如您所见,~扩展版本中存在 ,并且将不加改变地到达您的程序,这将无法将其解释为任何内容,因为波浪号扩展是 shell 的工作。

此外,您的类路径中不需要源目录~/software/Java/jcurses/src(因为运行程序不需要源文件)。所以试试:

scala -cp ~/software/Java/jcurses/lib/jcurses.jar:. -Djava.library.path=$HOME/software/Java/jcurses/lib  TestJcurses
于 2014-08-24T07:52:31.680 回答