Duvida entre JAVA e JAVAC

Gente estou com uma duvida referente a JAVA e JAVAC … por exemplo algumas coisas eu sei… mas nao sei a DIFERENÇA

ex:

java -version : exibe a versão da JVM
javac -version MinhaClasse.jar : exibe a versao do arquivo .jar

mas sei la nao vejo outras diferenças… podem me ajudar por favor ???

Obrigado!

Voce podes ter um compilador java ( javac -version) com uma versão, e uma JVM de outra versão na mesma maquina.
e podes querer saber a versão que foi usada para compilar um determinado jar ( javac -version MinhaClasse.jar).

Boa tarde a todos.

JAVA e JAVAC são dois compiladores java com propósitos diferentes.

O JAVA é um compilador destinado a somente interpretar os arquivos “.class" ou ".jar” criando uma camada de abstração no Sistema Operacional onde o mesmo roda.

Já o JAVAC é destinado somente a compilar os arquivos fontes “.java" em bytecodes, arquivos ".class”, e em caso de projeto, compacta-o em arquivo “.jar", e em caso de projeto Web, em arquivos compactados ".war”.

[quote=discorpio]Boa tarde a todos.

JAVA e JAVAC são dois compiladores java com propósitos diferentes.

O JAVA é um compilador destinado a somente interpretar os arquivos “.class" ou ".jar” criando uma camada de abstração no Sistema Operacional onde o mesmo roda.

Já o JAVAC é destinado somente a compilar os arquivos fontes “.java" em bytecodes, arquivos ".class”, e em caso de projeto, compacta-o em arquivo “.jar", e em caso de projeto Web, em arquivos compactados ".war”.[/quote]

EU não estou bem convicto disto mas acho que o javac é compilador e o java é interpretador ( faz a java virtual machine executar o programa ja compilado) :idea: :idea: :idea:

Bom gente isso que eu estou postando não é uma duvida… mas … eu preciso de uma ajuda com um projeto de programação para o meu ensino técnico … EU SOU UMA NEGAÇÃO , a minha area é hardware e manutenção de software … eu queria saber se alguém pode me ajudar :s (fazer pra mim ) é um projeto " simples " pra quem sabe … 4h no maximo acho que da pra se fazer … Por favor alguém me ajude estou desesperado ! é pra sábado ( amanhã ) // quem puder me envia um e-mail ou responde aqui : iori_recreio@hotmail.com Obrigado !

Boa tarde a todos.

Voce já ouviu falar de “Compilação Just-in-Time”.

Antes de falar desse processo, vou abordar passo a passo dos processos desde a criação até a execução de um programa em Java:

Um programa em Java, em geral passa por cinco fases, isto mesmo, cinco fases que são: edição, compilação, carga, verificação e execução.

  1. Edição: A edição consiste na criação do código fonte, que pode ser através de um simples bloco de notas, ou pelas ricas ferramentas IDEs de desenvolvimento (NetBeans, Eclipse e etc.).

  2. Compilação: O compilador Javac transforma o seu código fonte (arquivos “.java") em código binário chamado de Bytecodes, transformando os arquivos em ".class”.

  3. Carga: Todo programa deve ser carregado em memória antes de ser executado. Este processo conhecido como carga, consiste em carregar os arquivos “.class” para a memória RAM pelo “Carregador de Classes”.

  4. Verificação: Este processo é feito pelo “Verificador de Bytecodes”, que faz justamente isto, verificar se os Bytecodes contidos nos arquivos “*.class” não violem as regras de restrições do Java.

  5. Execução: Ou Interpretação fica por conta do JVM (Java Virtual Machine) que interpreta os bytecodes, depois de verificados, e executa em uma máquina virtual que simula um computador, mas oculta o Sistema Operacional e o Hardware subjacentes dos programas que interagem com o JVM, a qual chamamos de camada de abstração, fazendo com que seja portável em qualquer sistema operacional.

Na realidade, nos primórdios da linguagem Java, nos tempos de Bloco de Notas, o processo consistia exatamente naquilo que o Sulito disse, ou seja, Javac para compilar e Java para executar, entretanto para se executar o programa Java, o compilador Java ou o Java.exe, como preferem chamar, executa a JVM e inicia os processos dos ítens 3, 4 e 5. Devido a todo esse processo, mais tarde foram que criaram os pacotes JDK, onde o JVM passou a se chamar JRE (Java RunTime Enviroment - Ambiente de Execução Java), trazendo consigo os compiladores Java e Javac.

Além disso, no ínicio da linguagem Java, o JVMs tornaram-se muito lentos, isto pois os mesmos interpretavam cada bytecode por vez, além é claro de criar a máquina virtual, isto levou a criação de um compilador chamado Just-In-Time, que em geral utilizam uma combinação de interpretação e a compilação que leva o seu nome (JIT Just-In-Time), nesse processo, a JVM analisa os bytecodes à medida que eles são interpretados, procurando “Hot Spots (Pontos Ativos)”, que são partes dos bytecodes executados com frequência. Para estas partes, o compilador JIT, conhecido também como compilador Java HotSpot traduz os bytecodes para linguagem de máquina subjacente. Quando a JVM encontra novamente essas partes compiladas, o código em linguagem de máquina é executado mais rápido, isto faz com que os programas Java passem por duas fases de compilação.

Esta é a razão que eu costumo chamar tanto o Javac.exe quanto o Java.exe, de compiladores, eis que o Java.exe e parte integrante do JVM

Boa tare Romullo.

Em primeiro lugar, nunca declare a dua derrota antes de enfrentar a batalha, pois com certeza absoluta, a final dela estarás prostrado.

Voce deve conhecer a lei de Murphy, “Se algo pode dar errado, com certeza dará errado”.

Tudo isto está baseado na lei da Atração, ou seja, voce atrai para si mesmo até aquilo que desejas inconscientemente. Na verdade quando tu dizes que é uma negação, inconscientemente tu estás desejando isto para si mesmo.

Resumindo, se voce pelo menos iniciou os trabalhos de seu projeto, post aqui o seu projeto e os trabalhos que iniciou, para que possamos te ajudar, veja bem, eu disse te ajudar e não fazer o dever de casa pra você, pois isto é contra as regras de conduta deste Forum, estaremos pronto para sanar qualquer dúvida.

bom veja da seguinte forma:

o java vc executa e o javac vc compila para executar :D.

hummm, entendi \o…

Brigadao galera, me ajudou muito :smiley:

Eu gostaria de agradecer aos membros que se preocuparam em me ajudar , e mais ainda ao membro renato , que foi quem resolveu meu problema ! Muito obrigado , a partir de então espero aprender mais e mais ! Obrigado mais uma vez :smiley: