JRuby・Java連携
RailsをJVMで動かす、RubyからJavaライブラリを呼ぶ、JavaシステムにRubyを組み込む。JRuby本体の開発にも参加しているので、問題を根本から直せます。
JRubyが向いているとき
JRubyはJava仮想マシン上で動くRubyです。Railsが動き、あらゆるJavaライブラリを直接呼び出せます。次のような場合に選ばれます。
- 社内がJVMで動いている。 運用チームがJavaアプリのデプロイ、監視、チューニングに慣れていて、CRubyのサーバーだけが例外になってしまう。
- Javaライブラリが必要。 PDF生成、ベンダーのSDK、社内の既存システムなど。JRubyなら、Rubyのオブジェクトと同じようにRubyコードから呼べます。
- 並列スレッドが必要。 JRubyにはグローバルVMロックがないため、スレッドがすべてのコアで同時に動きます。
- Java製品にRubyを組み込みたい。 スクリプトや設定の言語として。
対応内容
- 調査:御社のRailsアプリをJRubyに移行できるか、費用はどれくらいか
- 移行:ネイティブ拡張の置き換え、スレッド安全性の修正、JVM向けのビルドとデプロイの構築
- 連携:RubyとJavaのコードを双方向につなぐ
- JRubyの修正:原因がJRubyにある場合は修正してアップストリームにマージしてもらい、御社がパッチを抱え続けなくて済むようにします
JRubyでの実績
Sampo KuokkanenはJRubyに35件のプルリクエストをマージしています。最近のものには、FiberスケジューラのIO処理、IO#wait、Fiber#transferとFiber#raiseの修正、Mutexを持つFiberを追跡していなかったことによるデッドロックの修正、サイズ0のIO::Bufferへの対応などがあります。JRubyがCRubyの挙動を知るための共通テストスイートruby/specにも参加しており、COSCUP 2026ではRuby on Ruby: ruby/spec, MRI tests, JRuby, and living on the edgeとして発表しました。
料金
料金は米ドル建て・税別です。「〜」の付いた料金は最低価格で、着手前に固定価格を決めます。日本円でのご請求も可能です。
JRuby移行調査
$2,000〜
固定価格・約1週間
御社のアプリとテストをJRubyで動かし、動かない箇所(ネイティブ拡張、スレッドに関する前提、Java版のないgem)を洗い出して、修正の工数を見積もります。
JRuby・Java開発
固定価格
調査後にお見積もり
JRubyへの移行、Java連携、JVM上のパフォーマンス改善、JRuby本体の修正(アップストリームへ送ります)。
よくある質問
- なぜRailsをJRubyで動かすのですか?
- 主な理由は三つです。社内のシステムがすべてJVMで動いていてデプロイ基盤を一つにしたい場合、Rubyに代わりのないJavaライブラリが必要な場合、そしてCRubyにはない本当に並列に動くスレッドが必要な場合です。
- すべてのgemがJRubyで動きますか?
- Rubyだけで書かれたgemはほぼ動きます。C拡張を使うgemはJava版か代替が必要で、どちらもないものもまれにあります。調査ではgemごとに対応方法をまとめます。
- JRuby自体のバグだった場合は?
- JRubyを修正し、その修正をアップストリームに送ります。Sampo KuokkanenはJRubyに35件のプルリクエストをマージしており、最近はFiber、IO、Fiberスケジューラまわりが中心です。
- Javaだけの開発もできますか?
- Rubyと接する部分であれば対応します。Rubyから呼ぶためのJavaライブラリのラッパー、JavaアプリへのRubyスクリプトの組み込み、JRuby向けのJVMチューニングなどです。
ご相談内容をお聞かせください
アプリのことと、何をお望みかを数行でお送りください。2営業日以内に、日本語または英語で、次のステップと概算をご返信します。
その他のサービス
Rails・Rubyバージョンアップ支援
古いRailsアプリを、作り直さず、機能開発も止めずに、最新のRailsとRubyへ段階的に移行します。まずは固定価格の調査・計画から。
調査・アップグレード計画:$1,500
Ruby on Rails受託開発
範囲のはっきりしたRailsの仕事を固定価格で。新しいアプリの最初のバージョン、機能一つ、不具合修正、月額の保守。
機能追加・不具合修正:$1,000〜
コード診断・セカンドオピニオン
御社のRailsアプリのコード、または受け取った提案書や見積もりを外部の目で診断し、次の判断に使える分かりやすい報告書にまとめます。
セカンドオピニオン:$500
Spinel:Rubyをネイティブバイナリに
SpinelはMatzの新しいAOTコンパイラで、Rubyのサブセットを単体のネイティブバイナリに変換します。私たちはSpinelの開発に参加しており、御社のコードに合うかを判断できます。
実現性調査:$2,000