Java bytecode
JRuby は複数モードの Ruby 用仮想機械として設計されている。コードは直接インタプリタで解釈実行されるだけでなく、JITコンパイラでJavaバイトコードに実行時にコンパイルされたり、AOTコンパイラで実行前にJavaバイトコードにコンパイルされたりする。2007年10月まではインタプリタモードしかなかったが、バージョン1.1からAOT/JITコンパイラがサポートされるようになった。これらのモードは混在可能であり、また生成したバイトコードからJavaクラスファイルを生成することもできる。