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営業日以内に、日本語または英語で、次のステップと概算をご返信します。