Rails Rails + JRuby 在 Windows 上也是香的

hghdo · 2022年11月09日 · 最后由 dipper 回复于 2022年11月29日 · 648 次阅读

Rails+jruby 在 windows 上也是香的

由于项目需要最近从 Mac 切到了 windows 平台。说实话 7000 多能用到带 3050 独显的笔记本,不得不说还是有点香的。如果能跑 rails 当然就更香了,于是开整。

网络上大多都是借助 WSL 实现 windows 上的 rails 开发,可是我要用 android 的虚拟机与 wsl2 有冲突,所以只能使用 jruby 了。

已经很多年没有关注过 jruby 了,真是士别三日,当刮目相待啊,如今的 jruby 已经羽翼丰满了,对 rails 的支持自然也很到位,而且借助 Java 虚拟机与 JIT 貌似性能也很霸道。不过我只是要一个 windows 的开发环境,性能暂且与我不相干直接开始踩坑。

安装 java 和 jruby

这没啥可说的,java 去下载 openJDK11,配置 JAVA_HOME 和 Path 那些网上一大堆教程,不多说了。jruby 也去官网下载,当前最新的稳定版是 9.3.x。

安装好了就可以用 ruby 了啦~。powershell+jruby,看起来不好看,但是 jruby 毕竟是 ruby,看到提示符,高兴啊。在 windows 上用 jruby 的话执行命令是:

jruby -S <cmd>

下面是一个对照表: jruby与ruby命令对照表

来吧直接替换 gem source 源,安装 rails,创建 rails 项目:

jruby -S rails new xxx -B -d jdbcmysql

终于坑来了😭

gem 'sass-rails', '>= 6'
gem 'web-console'

装不上,报错了,无法完成编译。。。Google 吧,好在并不复杂,参考了这里,需要安装 CRuby with DevKit 并配置一下 Path:

PATH=C:\jruby-9.2.18.0\bin;C:\Ruby26-x64\msys64\mingw64\bin;C:\Ruby26-x64\msys64\usr\bin;___other_stuff 

从新

jruby -S bundle install

这货居然搞定了。

mysql-server 下载 zip 版,简单配置如下:

#初始化,这个会在output中显示生成的root密码,要记一下,后面再改成自己想要的
mysqld --initialize --user=root --console 
#安装系统服务,要用管理员权限运行
mysqld install
# 启动停止服务
net start/stop mysql
# 改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456 or WhatUWant';

IDE 我用的 rubymine,好用,可以在 IDE 里面直接运行 rails server 和调试 rails。

Android 虚拟机和 WSL2 的冲突 lz 能说一下吗?

有时候会开发 RubyNative,环境是在 Windows 中的,然后 Rails 环境是在 WSL2 中,感觉没遇到什么冲突呀

我用的是夜神的模拟器,他和 wsl2 的虚拟环境有冲突,两个不能同时运行。好像有些模拟器工具就不会和 wsl2 冲突。

安卓模拟器和 wsl2 冲突是因为安卓模拟器不支持 Hyper-V 造成的,微软的 wsa 好像可以,android emulator 现在应该也支持 Hyper-V 了吧

jruby 是好东西

什么年代了 WINDOWS 还不能跑 Rails?

windows 现在也有包管理器可以直接下载配置 openJDK 了

kuyenda 回复

已经能跑了🍺

u1450154824 回复

jruby 必须是好东西,借助 JVM,Thread 威力倍增啊。而且 JIT 能把 bytecode 变成本地指令,那效率刚刚的。

报错了,请教下如何解决: 报错信息如下: jruby -version Cannot locate Java installation, specified by JAVA_HOME: D:\Program Files\jdk-17\bin

  • cmd 命令 java -version 能正常显示 Java 版本号。系统环境变量也配置了 JAVA_HOME

需要 登录 后方可回复, 如果你还没有账号请 注册新账号