По какой-то причине шар (*.jar
) не работал.Я смог запустить скрипт, вставив вручную все библиотеки:
#!/bin/sh
exec scala -cp lib/jai_codec.jar:lib/jai_core.jar:lib/mlibwrapper_jai.jar $0 $@
!#
import javax.media.jai.{JAI, RenderedOp}
Я не знаю , почему , хотя глобус не работает.
Обратите внимание, что в этом случае у меня нет .
в пути к классам, потому что сам скрипт предоставляется в качестве аргумента.Во многих случаях, хотя вам нужно будет включить его:
exec scala -cp .:lib/jai_codec.jar:lib/jai_core.jar:lib/mlibwrapper_jai.jar $0 $@
На основании этого полезного поста , у меня есть заголовок сценария, который вытягивает каждую банку в lib
папка, даже если сценарий (или папка, в которой он находится) являются символическими ссылками.
#!/bin/sh
L=`readlink -f $0`
L=`dirname $L`/lib
cp=`echo $L/*.jar|sed 's/ /:/g'`
/usr/bin/env scala -classpath $cp $0 $@
exit
!#
- Первая строка превращает указанное местоположение сценария
$0
в его фактическое местоположение на диске, расширяя символические ссылки. - Во второй строке удаляется имя скрипта и добавляется
/lib
- В третьей строке создается переменная
cp
со всеми банками, разделенными :
- Четвертая строказапускает scala, где бы он ни находился.
- Пятая строка выходит.Вероятно, в этом нет необходимости, но я чувствую себя лучше.