ruby - JRuby 在哪里寻找脚本?

标签 ruby jruby rubygems

运行命令jruby -S spec 出现以下错误

No such file, directory, or command -- spec

spec的位置是/usr/bin,在路径中。 Rspec 已安装。 MRI Ruby 可以找到该脚本。 JRuby 可以找到 rspec gem。那么出了什么问题呢?

最佳答案

在最新版本的 JRuby 中,当使用 -S 选项时,JRuby 在 3 个不同的位置查找文件:

  1. 在当前目录中,
  2. 在 $JRUBY_HOME/bin 中
  3. 在 PATH(不是 LOAD_PATH)上

这可以通过在 /tmp 中添加一个脚本(此处称为 test_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选项用于告诉我们脚本在哪里找到。

关于ruby - JRuby 在哪里寻找脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246062/

相关文章:

Ruby:根据条件调用方法

ruby-on-rails - 当您可以只使用 "="(来自 Hartl 的教程)时,为什么需要分配方法?

ruby-on-rails - 如何在 Rails 中的 Google Universal Analytics 跟踪代码中设置 USER_ID?

java - 请教一个简单的ruby多平台音频库或jruby的java libs利用率?

ruby-on-rails - 无法使用 2.3.0p ruby​​ 安装 gem nokogiri

ruby-on-rails - 生产中的 Rails edit gem

rubygems - Sproutcore安装-找不到RubyGem

ruby-on-rails - 如何共享 GEM 中的工厂并将其用于其他项目?

groovy - 使用 --indy 执行冒泡排序慢 5 倍

gem - JRuby 没有从 GEM_HOME 中找到 gem