Как работать со Scala и Jcurses?

Я хочу использовать Jcurses со Scala на 64-битной Ubuntu. К сожалению, я не нашел учебника по этому вопросу. Кто-нибудь может мне помочь!

Моя тестовая программа "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)
   ..........

Кто-нибудь может мне помочь?

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

Как видите, ~ есть в расширенной версии, и прибудет без изменений в вашу программу, которая не сможет его интерпретировать как что-либо, поскольку расширение тильды - это работа для оболочки.

Кроме того, вам не нужен каталог с исходным кодом ~/software/Java/jcurses/src в вашем classpath (так как исходные файлы не нужны для запуска программы). Так что постарайтесь:

scala -cp ~/software/Java/jcurses/lib/jcurses.jar:. -Djava.library.path=$HOME/software/Java/jcurses/lib  TestJcurses
Другие вопросы по тегам