運行命令jruby -S spec
提供了以下錯誤JRuby在哪裏查找腳本?
No such file, directory, or command -- spec
規範的位置是/usr/bin
,其在路徑中。 Rspec已安裝。 MRI Ruby可以找到腳本。 JRuby可以找到rspec寶石。那麼,哪裏出了問題?
運行命令jruby -S spec
提供了以下錯誤JRuby在哪裏查找腳本?
No such file, directory, or command -- spec
規範的位置是/usr/bin
,其在路徑中。 Rspec已安裝。 MRI Ruby可以找到腳本。 JRuby可以找到rspec寶石。那麼,哪裏出了問題?
隨着最新版本的JRuby,使用-S
選項時,JRuby的在3個不同位置查找文件:
這可以通過在/tmp
添加腳本(這裏稱爲test_it
,僅僅打印hello
)進行驗證:
[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
選項用於告訴我們在哪裏找到腳本。
只需添加此答案即可爲此問題提供最新答案,因爲最近我遇到了類似問題。不確定原始問題是否由使用舊版JRuby引起的? – 2012-03-04 09:21:03
JRuby將嘗試從類路徑上的目錄加載腳本。你可以通過運行來看看它們是什麼:
jruby -e "puts $:"
在命令行中,你可以用-I選項修改$ LOAD_PATH。或者用-r選項添加一個庫。例如:
jruby -I/usr/bin spec
這裏是loadpath和classpath一些更多的信息:
http://kenai.com/projects/jruby/pages/ClasspathAndLoadPath
希望幫助
這不起作用,/ usr/bin不在加載路徑中,也不應該是。 - 我正在使用應該查看PATH環境變量的-S選項 - 但它沒有。 – 2010-02-11 17:40:10
顯然,'jruby -S'只能在'$ JRUBY_HOME/bin'中查找,不在PATH中,儘管文檔說它看起來在PATH中。 – 2010-02-11 17:57:16
'cp/usr/bin/spec〜/ git/jruby/bin',它可以工作,但這確實是一個創可貼解決方案。 – 2010-02-11 18:07:06
這個問題還沒有得到正確的答案,我仍然對一個問題感興趣。 – 2011-05-18 21:55:45