class BitGirder::Ops::Java::JavaRunner

Public Class Methods

create_application_runner( opts ) click to toggle source
# File lib/bitgirder/ops/java.rb, line 104
def self.create_application_runner( opts )

    not_nil( opts, :opts )

    argv = [ has_key( opts, :main ) ]
    argv += ( opts[ :argv ] || [] )

    JavaRunner.new( opts.merge( :command => "java", :argv => argv ) )
end
split_argv( argv ) click to toggle source
# File lib/bitgirder/ops/java.rb, line 114
def self.split_argv( argv )
    
    res = { argv: [], sys_props: {}, jvm_args: [] }

    argv.each do |arg|
        case arg
        when /^-X/ then res[ :jvm_args ] << arg
        when /^-D(?:([^=]+)(?:=(.*))?)?$/
            raise "Property without name" unless $1
            res[ :sys_props ][ $1 ] = $2 || "" 
        else res[ :argv ] << arg
        end
    end

    res
end

Public Instance Methods

process_builder() click to toggle source
# File lib/bitgirder/ops/java.rb, line 94
def process_builder

    BitGirder::Io::UnixProcessBuilder.new(
        :cmd => @java_env.jcmd( @command ),
        :argv => create_jv_argv,
        :env => @proc_env,
        :opts => @proc_opts
    )
end

Private Instance Methods

create_jv_argv() click to toggle source
# File lib/bitgirder/ops/java.rb, line 78
def create_jv_argv
    
    res = []
 
    unless @classpath.empty?
        res << "-classpath" << @java_env.as_classpath( @classpath )
    end

    res += @jvm_args
    @sys_props.each_pair { |k, v| res << "-D#{k}=#{v}" }
    res += argv

    res.map { |v| v.to_s }
end