def systemu
split_argv = JRuby::PathHelper.smart_split_command @argv
process = java.lang.Runtime.runtime.exec split_argv.to_java(:string)
stdout, stderr = [process.input_stream, process.error_stream].map do |stream|
StreamReader.new(stream)
end
field = process.get_class.get_declared_field("pid")
field.set_accessible(true)
pid = field.get(process)
thread = new_thread pid, @block if @block
exit_code = process.wait_for
[
RubyProcess::RubyStatus.new_process_status(JRuby.runtime, exit_code, pid),
stdout.join,
stderr.join
]
end