class Buildr::Shell::JIRB
Constants
- JRUBY_VERSION
Public Instance Methods
launch(task)
click to toggle source
# File lib/buildr/core/shell.rb, line 55 def launch(task) if jruby_home # if JRuby is installed, use it cp = project.compile.dependencies + [project.path_to(:target, :classes)] + Dir.glob("#{jruby_home}#{File::SEPARATOR}lib#{File::SEPARATOR}*.jar") + task.classpath props = { 'jruby.home' => jruby_home, 'jruby.lib' => "#{jruby_home}#{File::SEPARATOR}lib" } props.merge! jrebel_props(project) props.merge! task.properties unless Util.win_os? uname = %x`uname -m` cpu = if uname =~ /i[34567]86/ 'i386' elsif uname == 'i86pc' 'x86' elsif uname =~ /amd64|x86_64/ 'amd64' end os = %x`uname -s | tr '[A-Z]' '[a-z]'` path = if os == 'darwin' 'darwin' else "#{os}-#{cpu}" end props['jna.boot.library.path'] = "#{jruby_home}/lib/native/#{path}" end props['jruby.script'] = if Util.win_os? then 'jruby.bat' else 'jruby' end props['jruby.shell'] = if Util.win_os? then 'cmd.exe' else '/bin/sh' end args = [ "-Xbootclasspath/a:#{Dir.glob("#{jruby_home}#{File::SEPARATOR}lib#{File::SEPARATOR}jruby*.jar").join File::PATH_SEPARATOR}" ] + jrebel_args + task.java_args Java::Commands.java 'org.jruby.Main', "#{jruby_home}#{File::SEPARATOR}bin#{File::SEPARATOR}jirb", { :properties => props, :classpath => cp, :java_args => args } else cp = project.compile.dependencies + [ jruby_artifact, project.path_to(:target, :classes) ] + task.classpath props = jrebel_props(project).merge(task.properties) args = jrebel_args + task.java_args Java::Commands.java 'org.jruby.Main', '--command', 'irb', { :properties => props, :classpath => cp, :java_args => args } end end