It would be considered an interpreter, and the compiled code would be byte code.
To be a "virtual machine" you'd need to create ways of interacting with "everything" on the PC that it runs. Giving your users/developers a "print to screen" feature is not a virtual machine.
http://en.wikipedia.org/wiki/Virtual_machine
Edit: You asked: "Also: Conceptually, would you say that a programming language that is only able to create programs that can run inside another program, is still considered a programming language?"
That depends on the features of this "other program". If you're asking about the JVM: yes. The wikipedia definition of programming language can be found here:
http://en.wikipedia.org/wiki/Programming_language
A programming language is an artificial language designed to communicate instructions to a machine
And we say that a virtual machine fulfills this property. So yes, Java (and other languages that compile to bytecode run by a proper virtual machine) is a programming language.