Как работать со 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