     raw_data = DoppioFile.load("#{args[0]}.class").read()
     return ["Could not find class '#{args[0]}'.",'error'] unless raw_data?
     disassembler.disassemble process_bytecode raw_data
+  rhino: (args, cb) ->
+    rs = new runtime.RuntimeState(stdout, user_input, read_classfile)
+    jvm.run_class(rs, '!rhino', args, -> controller.reprompt())
   list_cache: ->
     (name for name of raw_cache).join '\n'
   clear_cache: (args) ->

    dataType: 'text'
    beforeSend: (jqXHR) -> jqXHR.overrideMimeType('text/plain; charset=x-user-defined')
    success: (data) -> class_cache['!javac'] = process_bytecode data
  }

try_path = (path) ->

        controller.message "Could not load '#{fname}'.\n", 'error', true
    }

  stdout = (str) -> controller.message str, '', true # noreprompt

  user_input = (n_bytes, resume) ->
    oldPrompt = controller.promptLabel
    controller.promptLabel = ''
