E ae pessoal…
Sou novo em java e tenho um pergunta que está me deixando intrigado. Eu sei que a linguagem java é interpretada, porém eu posso compilar meu código? Java pode ser compilada para uma plataforma especifica?
Desde já, obrigado pelas respostas. 
Ola Tudo bem?
O Java é uma poderosa linguagem interpretada, o seu código é sim “compilado” pela Java Compiler, mas ele será tranformado em uma código intermediario, que sera interpretado pela JVM(Java Virtual Machine).
Se esta querendo dizer rodar um programa java sem a VM, isso não é possivel até onde eu sei, pois o código gerado tem de ser interpretado pela VM.
Abraço
Java na verdade é compilado para um formato intermediario chamado Java bytecode.
Assim como uma máquina física executa instruções(código compilado) para arquitetura dela, uma máquina virtual java executa esse código compilado em bytecode.
A diferença é que a JVM traduz o bytecode para uma instrução de máquina física. Hoje em dia esse processo de tradução inclui o Just-in-Time compiler, que analisa o bytecode e efetivamente compila para código nativo. Algumas JVMs tem uma versão mais avançada de JIT chamada Hotspot, que analisa o ambiente e as chamadas que estão sendo executadas contra o bytecode, e otimiza ainda mais o código nativo.
TL;DR: Java não é uma linguagem interpretada no sentido mais puro.
1 curtida
E respondendo a pergunta se há compiladores de Java para linguagem de máquina (Ahead-of-Time compiler):
http://gcc.gnu.org/java/
https://www.google.com.br/search?q=java+aot+compiler
Java é compilada e interpretada.
Vc compila o arquivo .java para .class, esse class é o bytecode que será interpretado pela jvm.
Valeu pessoal, ótimas explicações.
Obrigado Bruno Laturner pelos links sobre Ahead-of-Time compiler
