运行命令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