Well again. There exists a hardware spec for Java, you can run it natively with the correct hardware. So that goes back to my point of emulators. Just because you are virtualizing that hardware in most cases, does not mean you don't need to compile it down for that hardware.
In that regard c and Java are effectively the same. You just happen to have the hardware to run what gcc will shit out.
I believe you misinterpreted my human readable distinction. I was trying to explain what you pass through for the actual execution.
With traditionally accepted interpreted languages, you don't preform any extra steps to execute your code. Just throw it through the interpreter.
With non interpreted, you have to compile it down before the code will execute. That's how Java works. I also accept that some people claim Java to be interpreted, but in that regard you have a very gray area on what "interpreted" actually means.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.