Una JVM es un programa, por lo que para poder ejecutarlo en un aparato necesitas que ese aparato disponga de un procesador, memoria y un firmware/SO que te permita cargar la JVM.
Evidentemente una tarjeta de crédito no puede ejecutar software.
Sobre compilar, Java es un lenguaje interpretado, compilas el programa en donde lo desarrollas, pero tiene que ser con un código compatible con la JVM donde se va a ejecutar, ya que la JVM es la que traduce el código al lenguaje de la máquina donde se ejecuta.
http://es.wikipedia.org/wiki/Java_%2..._la_plataforma