MacBook Air上JRuby安装Rails失败:无效IP地址或权限问题
JRuby 9.2.9.0安装Rails失败的解决办法
问题场景
在MacBook Air上使用JRuby 9.2.9.0执行jruby -S gem install rails安装Rails时,出现两个问题:
- FilenoUtil权限警告,提示需添加
--add-opens java.base/sun.nio.ch=org.jruby.dist或=org.jruby.core参数 - 触发
IPAddr::InvalidAddressError错误,提示invalid address
错误日志详情:
sathyadevarakonda@192 homebrew % which jruby >/Users/sathyadevarakonda/.rvm/rubies/jruby-9.2.9.0/bin/jruby sathyadevarakonda@192 homebrew % jruby -S gem install rails >2024-09-23T11:59:25.699+05:30 [main] WARN FilenoUtil : Native subprocess control requires open access to sun.nio.ch >Pass '--add-opens java.base/sun.nio.ch=org.jruby.dist' or '=org.jruby.core' to enable. >ERROR: While executing gem ... (IPAddr::InvalidAddressError) >invalid address >sathyadevarakonda@192 homebrew %
解决方案
1. 解决FilenoUtil权限警告
该警告由新版Java的模块访问限制导致,需给JRuby添加JVM参数:
- 临时生效:直接在安装命令中添加参数
也可以替换为jruby -J--add-opens java.base/sun.nio.ch=org.jruby.dist -S gem install rails=org.jruby.core参数,效果一致。 - 永久生效:设置环境变量避免每次输入参数
编辑你的shell配置文件(如~/.zshrc或~/.bash_profile),添加:
执行以下命令使配置生效:export JRUBY_OPTS="--add-opens java.base/sun.nio.ch=org.jruby.dist"source ~/.zshrc # zsh用户执行此命令 # 或 source ~/.bash_profile bash用户执行此命令
2. 解决IPAddr::InvalidAddressError错误
这个错误通常是JRuby与RubyGems版本不兼容,或网络地址解析异常导致,按以下步骤处理:
- 更新RubyGems到兼容版本:
jruby -J--add-opens java.base/sun.nio.ch=org.jruby.dist -S gem update --system - 指定兼容的Rails版本安装:
JRuby 9.2.9.0对应Ruby 2.5语法,推荐安装支持Ruby 2.5的Rails 6.1.x版本:jruby -J--add-opens java.base/sun.nio.ch=org.jruby.dist -S gem install rails -v 6.1.7.6 - 检查hosts文件配置:
打开/etc/hosts文件,检查是否存在格式错误的条目(如无对应域名的IP、无效IP地址等),修正后重试安装。
内容的提问来源于stack exchange,提问作者Satya Devarakonda
相关产品推荐
相关产品推荐

