fwiw, Python and Ruby are compiled to bytecode prior to execution as well, just not with a separate command as with Java. Trying to explain the distinction between compiled and interpreted gets messy fast nowadays.
In some sense, python and ruby compile into bytecode, and then the bytecode is executed using an interpreter. There are also concepts such as partial evaluation (where you do a little interpreting while you compile) and JITing (where you do a little compiling while you interpret) which also seem to mix compilation and interpretation, but can be clearly specified as a particular combination of them.