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?
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
B
Bruno_Laturner1 like
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.
B
Bruno_Laturner
E respondendo a pergunta se há compiladores de Java para linguagem de máquina (Ahead-of-Time compiler):