Drink your morning coffee Draw this Ascii coffee cup:

  o
       o
    o
 __________
/          \__
|   J      |  \
|    A     |  |
|     V    |  |
|      A   |__/
\__________/

Brownie points for coffee-script or java :)

Shortest code in bytes, function or program, trailing newline or white space is acceptable, drink up!
JavaScript (ES6), 110 104 bytes
Saved 4 bytes thanks to edc65


let f =

_=&gt;`1o
6o
3o
 9
/44\\__
|2J5|1\\
|3A4|1|
|4V3|1|
|5A2|__/
\\9/`.replace(/\d/g,n=&gt;' _'[n&gt;&gt;3].repeat(++n))

console.log(f())



How it works
The compression of the original ASCII art is achieved by replacing all sequences of 2 to 10 consecutive spaces and the two sequences of 10 consecutive underscores with a single digit:

Each sequence of N consecutive spaces is encoded with the digit N-1.
The underscore sequences are encoded with a 9.

We use N-1 rather than N so that we never have to use more than one digit. Hence the need for ++n when decoding.
The expression n&gt;&gt;3 (bitwise shift to the right) equals 0 for n = 1 to n = 7 and equals 1 for n = 8 (not used) and n = 9. Therefore, ' _'[n&gt;&gt;3] gives an underscore for 9, and a space for all other encountered values.
The only special case is the sequence of 10 consecutive spaces just above &quot;JAVA&quot;. Encoding it with a 9 would conflict with the underscore sequences. So we need to split it into two sequences of 5 spaces, encoded as 44.