已安装JRuby却提示找不到命令及warble加载错误问题求助
解决方案
1. Gradle执行runModelTests任务找不到jruby问题
该问题的核心原因是通过RVM安装的jruby仅在交互式shell环境下加载了路径配置,Gradle的Exec任务运行时触发的是非登录、非交互式shell,不会加载RVM的环境变量,因此无法识别jruby命令,可选择以下任意一种方案解决:
- 方案1:使用jruby绝对路径配置Gradle任务
先在终端执行which jruby获取jruby的完整路径,示例输出为/home/virtdev/.rvm/rubies/jruby-9.2.9.0/bin/jruby,将任务中的commandLine修改为对应路径即可:task runModelTests(dependsOn: [updateSQLiteDbSchema], type: Exec) { commandLine = ['/home/virtdev/.rvm/rubies/jruby-9.2.9.0/bin/jruby', '-S', 'rake', 'test:units', 'RAILS_ENV=test'] } - 方案2:全局加载RVM环境配置
将source ~/.rvm/scripts/rvm添加到~/.bashrc或~/.profile文件中,重启终端后再执行Gradle任务即可。 - 方案3:安装系统级jruby
执行sudo apt install jruby将jruby安装到系统公共路径下,所有进程均可直接识别jruby命令。
2. jruby -S warble报LoadError问题
该问题由当前jruby环境缺少warbler依赖、或项目依赖未正确加载导致,按以下步骤解决:
- 先给当前jruby安装warbler和bundler依赖:
jruby -S gem install warbler bundler
- 进入
/src/central-server目录安装项目所需的所有ruby依赖:
jruby -S bundle install
- 通过bundler执行warble命令,避免依赖路径冲突:
jruby -S bundle exec warble
内容的提问来源于stack exchange,提问作者dos4dev
相关产品推荐
相关产品推荐

