Skip to content
JRuby's native launcher executable
C++ C Ruby Shell
Latest commit 7e4d7ea @chrisseaton chrisseaton Merge pull request #8 from jruby/search-options
Add support for -X? and -X...
Failed to load latest commit information.
inc JRUBY-6988 and possibly others
lib Bump version in gem side to 1.1.0
nbproject Add version.h to NetBeans project.
resources Use the head Luke
spec Remove unneeded memory and stack properties. Initial commit
.gitignore Add "make install" target and prepare Gem package of jruby-launcher
.travis.yml Do meaningful stuff on Travis
COPYING Updated documentation, license info
Gemfile Do meaningful stuff on Travis
Makefile Remove test from make default target and bump to 1.0.17. Mark up with Markdown
Rakefile README moved.
TODO.txt JRUBY-4408: JRuby launcher should add JAR files from lib directory to…
argnames.h Add a --dev flag that disables our JIT and forces Hotspot tier 1.
argparser.cpp Add support for -X? and -X...
argparser.h Add support for -X? and -X...
extconf.rb Support new RubyGems lib location.
jruby.cpp JRUBY-4133: JRuby native launcher should look at its binary name and …
jrubyexe.cpp Clean up tabs and some whitespace
jvmlauncher.cpp JRUBY-6988 and possibly others
jvmlauncher.h JRUBY-6988 and possibly others
nbexecloader.h Clean up tabs and some whitespace
ng.c Revert "Revert "Instead of passing exitcode, exit with 1.""
platformlauncher.cpp Fix JRUBY-7096 JAVA_HOME value corrupted
platformlauncher.h Copyright notice update
rb_w32_cmdvector.h JRUBY-4151: Unable to use single quotes in windows
strlcpy.c strlcpy is a macro under OS X 10.9
unixlauncher.cpp Fix JRUBY-6620: On windows if JAVA_HOME ends in a '\' then native lau…
unixlauncher.h Unix jruby launcher is compiling!
utilsfuncs.cpp g++ is more strict (no initialization of string to NULL -- since it c…
utilsfuncs.h Fix JRUBY-6620: On windows if JAVA_HOME ends in a '\' then native lau…
utilsfuncswin.cpp Unix jruby launcher is compiling!
version.h Bump version to 1.1.

JRuby Native Launcher


Maintaning JRuby.BAT was, well, to put it mildly, unpleasant. We had tens of bugs due to BAT limitations, we had weird behaviors depending on the version of Windows, we had a bunch of regressions.

See for more details.

On UNIX platforms, we had problems because a shell-script can't be put as a path in the shebang and couldn't take arguments. (#!/usr/bin/env jruby -w)

We also wanted to DRY up argument handling, even if it meant ditching shell script and writing in lowest-common-denominator C++ (!).


On UNIX, you should be able to just type make and a jruby binary will be created in the project directory. Copy this to $JRUBY_HOME/bin (or wherever your jruby executable is installed). On Windows, you should also be able to type make if you have the MinGW compiler toolkit installed.

Or, open the project in Netbeans 6.8 (with C/C++ plugin installed). If Netbeans warns that no compilers found, follow the instructions and install the required compilers. Currenty, we support MinGW. More info here:

Then, just build it, and you're ready to go. jruby.exe, jrubyw.exe and jruby.dll will be created, they need to be copied into $JRUBY_HOME/bin directory.

Both, 32-bit and 64-bit compilers are supported. Great version of 64-bit mingw can be found here:

To build 64-bit version of the launcher, use the following from the command line:

make CONF=mingw64


The launcher provides a great logger, use it like this:

jruby -Xtrace LOG_FILE.log ....


See TODO.txt file for things that need to be done before this launcher could replace jruby.bat.


The original code is by Netbeans project.


Read the COPYING file.

Something went wrong with that request. Please try again.