2010-02-11 4 views
2

Выполнение команды jruby -S spec выдает следующую ошибкуГде JRuby ищет скрипты?

No such file, directory, or command -- spec 

Расположение ФПЭ /usr/bin, которая находится в пути. Rspec установлен. MRI Ruby может найти сценарий. JRuby может найти драгоценный камень rspec. Так что не так?

+0

Этот вопрос еще не получил правильного ответа, и меня все еще интересует одно. –

ответ

2

С последней версии JRuby, при использовании опции -S, JRuby ищет файл в трех разных местах:

  1. В текущем каталоге,
  2. В $ JRUBY_HOME/бен
  3. на пути (не LOAD_PATH)

Это можно проверить, добавив скрипт (здесь test_it, который просто печатает hello) в /tmp:

[email protected]:~$ jruby -v 
jruby 1.6.6.dev (ruby-1.8.7-p357) (2012-01-22 9099561) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_30) [linux-amd64-java] 
[email protected]:~$ jruby -S test_it 
jruby: No such file or directory -- test_it (LoadError) 
[email protected]:~$ export PATH=/tmp:$PATH 
[email protected]:~$ jruby -J-Djruby.debug.scriptResolution=true -S test_it 
Found: /tmp/test_it 
hello 

Здесь опция debug.scriptResolution используется, чтобы сообщить нам, где сценарий был найден.

+0

Просто добавьте этот ответ, чтобы предоставить актуальный ответ на эту проблему, так как я столкнулся с подобной проблемой в последнее время. Не уверен, был ли исходный вопрос вызван использованием более старой версии JRuby? –

2

JRuby попытается загрузить сценарии из каталогов на пути к классам. Вы можете увидеть, что это запустив:

jruby -e "puts $:" 

В командной строке вы можете изменить $ LOAD_PATH с помощью опции -I. Или добавьте библиотеку с параметром -r. Например:

jruby -I/usr/bin spec 

Вот еще информация о loadpath и классам:

http://kenai.com/projects/jruby/pages/ClasspathAndLoadPath

Надежда, что помогает

+0

Это не работает,/usr/bin не находится в пути загрузки, и не должно быть. - Я использую параметр -S, который должен смотреть на переменную среды PATH, но это не так. –

+0

По-видимому, 'jruby -S' выглядит только в' $ JRUBY_HOME/bin', а не в PATH, хотя документы говорят, что он выглядит в PATH. –

+0

'cp/usr/bin/spec ~/git/jruby/bin', и это работает, но это действительно решение для групповой помощи. –

Смежные вопросы