Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

JRuby's native launcher executable

Octocat-spinner-32 inc JRUBY-6988 and possibly others February 20, 2013
Octocat-spinner-32 lib Bump version in gem side to 1.1.0 March 20, 2014
Octocat-spinner-32 nbproject Add version.h to NetBeans project. April 13, 2010
Octocat-spinner-32 resources Use the head Luke October 10, 2012
Octocat-spinner-32 spec Remove unneeded memory and stack properties. September 10, 2012
Octocat-spinner-32 Initial commit October 16, 2009
Octocat-spinner-32 .gitignore Add "make install" target and prepare Gem package of jruby-launcher February 24, 2010
Octocat-spinner-32 .travis.yml Do meaningful stuff on Travis June 27, 2013
Octocat-spinner-32 COPYING Updated documentation, license info October 16, 2009
Octocat-spinner-32 Gemfile Do meaningful stuff on Travis June 27, 2013
Octocat-spinner-32 Makefile
Octocat-spinner-32 Mark up with Markdown February 11, 2013
Octocat-spinner-32 Rakefile README moved. May 21, 2013
Octocat-spinner-32 TODO.txt JRUBY-4408: JRuby launcher should add JAR files from lib directory to… January 01, 2010
Octocat-spinner-32 argnames.h Add a --dev flag that disables our JIT and forces Hotspot tier 1. March 19, 2014
Octocat-spinner-32 argparser.cpp Print out version with -Xtrace so we can know which jruby-launcher th… March 20, 2014
Octocat-spinner-32 argparser.h Use -cp for separate processes which will expand wildcard entries May 04, 2012
Octocat-spinner-32 extconf.rb Support new RubyGems lib location. January 03, 2012
Octocat-spinner-32 jruby.cpp JRUBY-4133: JRuby native launcher should look at its binary name and … October 21, 2009
Octocat-spinner-32 jrubyexe.cpp
Octocat-spinner-32 jvmlauncher.cpp JRUBY-6988 and possibly others February 20, 2013
Octocat-spinner-32 jvmlauncher.h JRUBY-6988 and possibly others February 20, 2013
Octocat-spinner-32 nbexecloader.h Clean up tabs and some whitespace January 28, 2010
Octocat-spinner-32 ng.c Revert "Revert "Instead of passing exitcode, exit with 1."" January 24, 2013
Octocat-spinner-32 platformlauncher.cpp
Octocat-spinner-32 platformlauncher.h
Octocat-spinner-32 rb_w32_cmdvector.h JRUBY-4151: Unable to use single quotes in windows February 16, 2010
Octocat-spinner-32 strlcpy.c strlcpy is a macro under OS X 10.9 July 25, 2013
Octocat-spinner-32 unixlauncher.cpp Fix JRUBY-6620: On windows if JAVA_HOME ends in a '\' then native lau… May 12, 2012
Octocat-spinner-32 unixlauncher.h Unix jruby launcher is compiling! January 25, 2010
Octocat-spinner-32 utilsfuncs.cpp g++ is more strict (no initialization of string to NULL -- since it c… August 04, 2012
Octocat-spinner-32 utilsfuncs.h Fix JRUBY-6620: On windows if JAVA_HOME ends in a '\' then native lau… May 12, 2012
Octocat-spinner-32 utilsfuncswin.cpp
Octocat-spinner-32 version.h Bump version to 1.1. March 19, 2014

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.