0
0

More than 1 year has passed since last update.

RJBでハマったこと

Posted at

RJBとは

Ruby Java Bridge。
簡単に言うと「Ruby から Java のライブラリを使用する」もの。

開発環境

  • WSL2(Ubuntu 20.04LTS)
  • Docker
  • Ruby 1.8.7
  • Rails 2.1.0
  • rjb-1.4.6
  • JDK1.8.9

ハマったこと

クラスパスの記述方法

任意のクラスパスを読み込む。
今回はExcelを扱おうとしてるのでpoi等以下のような感じ。

Rjb::load("#{RAILS_ROOT}/lib/poi-3.5-FINAL-20090928.jar;#{RAILS_ROOT}/lib/poi-ooxml-3.5-FINAL-20090928.jar;#{RAILS_ROOT}/lib/ooxml-schemas-1.0.jar;#{RAILS_ROOT}/lib/poi-scratchpad-3.5-FINAL-20090928.jar;#{RAILS_ROOT}/lib/dom4j-1.6.1.jar;#{RAILS_ROOT}/lib/geronimo-stax-api_1.0_spec-1.0.jar;#{RAILS_ROOT}/lib/xmlbeans-2.3.0.jar", jvmargs=[])

複数の場合、Linuxの場合はコロン(:)、Windowsの場合はセミコロン(;)になる。
本番環境のセミコロンになっていて、正しく読み込まれていない状態だった。
(前任者の開発環境がウィンドウズだったのか?)
今まで正常に動いてたのが奇跡。

Rjb::load は一度まで

loadは「JVM インスタンスの作成」をしている模様。
(一度loadすると2回目は無効になる?)

なので、Railsサーバーの再起動も必要っぽい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0