JR

JRuby Deployment

JVM packaging and deployment patterns for JRuby

Details

Language / Topic
jrubyJRuby
Category
Tooling

Rules

balanced
- Use `jruby -S gem install` for gems and `warbler` to package JRuby apps as `.war` files for Java application servers.
- Leverage JVM libraries directly with `java_import` — access any Java class from Ruby code without writing JNI bindings.
- Use `--server` JVM flag for long-running processes and `--client` for scripts — server mode optimizes for throughput after warm-up.
- Use `warbler` gem to package JRuby apps as `.war` or `.jar` files for deployment.
- Use `jar` packaging for standalone executables that include the JRuby runtime.
- Set JVM memory with `-J-Xmx512m` flags — JRuby uses more memory than MRI.
- Use `jruby --dev` flag during development for faster startup (disables some optimizations).