JRuby在哪里寻找脚本?
运行命令jruby-S spec会出现以下错误JRuby在哪里寻找脚本?,ruby,jruby,gem,Ruby,Jruby,Gem,运行命令jruby-S spec会出现以下错误 No such file, directory, or command -- spec spec的位置是路径中的/usr/bin。已安装Rspec。Ruby可以找到脚本。JRuby可以找到rspec gem。那么出了什么问题呢?JRuby将尝试从类路径上的目录加载脚本。您可以通过运行以下命令查看这些内容: jruby -e "puts $:" 在命令行上,可以使用-I选项修改$LOAD_路径。或者使用-r选项添加库。例如: jruby -I/u
No such file, directory, or command -- spec
spec的位置是路径中的
/usr/bin
。已安装Rspec。Ruby可以找到脚本。JRuby可以找到rspec gem。那么出了什么问题呢?JRuby将尝试从类路径上的目录加载脚本。您可以通过运行以下命令查看这些内容:
jruby -e "puts $:"
在命令行上,可以使用-I选项修改$LOAD_路径。或者使用-r选项添加库。例如:
jruby -I/usr/bin spec
以下是有关加载路径和类路径的更多信息:
希望这对JRuby的最新版本有所帮助,当使用
-S
选项时,JRuby会在3个不同的位置查找文件:
/tmp
中添加一个脚本(这里称为test\u it
,它只打印hello
)来验证:
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
选项用于告诉我们在哪里找到了脚本。如果不起作用,/usr/bin不在加载路径中,也不应该在加载路径中。-我正在使用-S选项,它应该查看PATH环境变量,但它没有。显然,jruby-S
只查看$jruby\u HOME/bin
,而不查看路径,尽管文档说它确实查看路径。cp/usr/bin/spec~/git/jruby/bin
,而且它可以工作,但这确实是一个创可贴的解决方案。这个问题还没有得到正确的答案,我仍然对其中一个问题感兴趣。只是添加了这个答案来提供一个最新的答案来解决这个问题,因为我最近遇到了类似的问题。不确定最初的问题是否是由使用较旧版本的JRuby引起的?