运行命令jruby -S spec
会出现以下错误
No such file, directory, or command -- spec
规范的位置是/usr/bin
,它位于路径中。已安装Rspec。 MRI Ruby可以找到脚本。 JRuby可以找到rspec gem。出了什么问题?
答案 0 :(得分:2)
JRuby将尝试从类路径上的目录加载脚本。您可以通过运行来查看这些内容:
jruby -e "puts $:"
在命令行上,您可以使用-I选项修改$ LOAD_PATH。或者使用-r选项添加库。例如:
jruby -I/usr/bin spec
以下是有关loadpath和classpath的更多信息:
http://kenai.com/projects/jruby/pages/ClasspathAndLoadPath
希望有所帮助
答案 1 :(得分:2)
使用最新版本的JRuby,当使用-S
选项时,JRuby会在3个不同位置查找该文件:
这可以通过在test_it
中添加一个脚本(此处称为hello
仅打印/tmp
)来验证:
sebastien@greystones:~$ 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]
sebastien@greystones:~$ jruby -S test_it
jruby: No such file or directory -- test_it (LoadError)
sebastien@greystones:~$ export PATH=/tmp:$PATH
sebastien@greystones:~$ jruby -J-Djruby.debug.scriptResolution=true -S test_it
Found: /tmp/test_it
hello
此处debug.scriptResolution
选项用于告诉我们脚本的位置。