     unless RELEASE?
       return "Usage: javac <source file>" unless args[0]?
       return compile_source args[0], cb
-    stdout = (str) -> controller.message str, '', true # noreprompt
     rs = new runtime.RuntimeState(stdout, user_input, read_classfile)
     # hack: use a special class name that won't clash with real ones
     jvm.run_class(rs, '!javac', args, -> controller.reprompt())
   java: (args, cb) ->
     return "Usage: java class [args...]" unless args[0]?
-    stdout = (str) -> controller.message str, '', true # noreprompt
     rs = new runtime.RuntimeState(stdout, user_input, read_classfile)
     jvm.run_class(rs, args[0], args[1..], -> controller.reprompt())
   javap: (args) ->

    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
  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
  }
  $.ajax "third_party/classes/com/sun/tools/script/shell/Main.class", {
    type: 'GET'
    dataType: 'text'
    beforeSend: (jqXHR) -> jqXHR.overrideMimeType('text/plain; charset=x-user-defined')
    success: (data) -> class_cache['!rhino'] = process_bytecode data
  }

try_path = (path) ->
