Ir ao conteúdo
  • Cadastre-se

Como Criar executável com o NetBeans??


Keanu

Posts recomendados

  • 2 semanas depois...

Cara, em Java não tem como tu criar um .exe, nem no netbeans nem em qualquer outra IDE. Tu pode criar um .jar que é o executável do Java, com a opção "Build Main Project", ou F11. Seleciona a classe que tem o método main e tá criado o .jar que vai ficar dentro da pasta do projeto, na pasta dist.

Existem programas que conseguem transformar um .jar em .exe mas nunca testei, nunca precisei de um .exe em java...

Link para o comentário
Compartilhar em outros sites

Bote fé que Java é bem pesado.

Compare compilar um algoritmo em Java e outro em C pra você ver a velocidade. A luz do pc pisca 1 vez em C e fica piscando algum bocado de tempo quando gera um bytecode e um .class em Java.

Recursos ali eu quis dizer pelo fato de que em C/C++ e Assembly a alocação dinâmica de memória é muito mais utilziada do que em Java. Tá certo que Java possui o GarbageCollector, mas isso impede até um certo ponto o desenvolvedor de manipular o hardware porque é tudo feito pela própria JVM. Ela é portável porque depois que tu instala a JVM o Java roda ali do jeito previsto, e "carrega" o software do lado pro outro, contanto que tenha a JVM junto.

É só repararmos na diferença da compilação: faça uma calculadora em java e uma em C pra você ver qual das duas compila mais rápido.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Na calculadora em C coloque algumas opções de otimização pra ver como C compila rápido...

Pra compila o Java é tranquilo, ele é pesado na hora de executar porque alem de carregar o programa tem que carregar a JVM, e a JVM ainda tem o trabalho de compilar/intepretar o bytecode.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Não cheguei a testar com algum fonte grande o bastante para comparar o tempo de compilação, mas tenho quase certeza que o Java compila mais rápido, o compilador C tem que fazer muito mais trabalho pela porrada de headers que qualquer programa C tem, e compilar para algum set de instruções real, principalmente um complexo que nem o x86, é muito mais trabalhoso do que compilar para um bytecode nem o do Java.

E de qualquer jeito, que diferença isso faz?

Link para o comentário
Compartilhar em outros sites

Eu só estava respondendo o que o RED ICE duvidou de mim.

E nem a pau que Java compila mais rápido que C.

Tenho certeza absoluta disso.

O que um compilador de C faz? Transforma o código em C pra um em Assembly que passa pelo Assembler, que monta o código em linguagem de máquina e faz o executável.

O que um compilador de Java faz? Transforma o código em Java para vários bytecodeSSSSS e armazena eles no arquivo .class. O carregador de classe lê o .class e coloca os bytecodeSS na MP, depois é feita uma verificação se cada bytecode não extravasa a segurança e ainda depois deve ser executado pela JVM.

O que eu quero dizer é que uma Máquina Virtual (tanto JVM quando VMWare e outros) rodam não tão rapidamente como um S.O. normal, porque requerem muito mais do hardware. Esse é o "pesado" do Java: ter os bytecodes executados pela JVM e não diretamente pelo hardware (ao contrário de C, Pascal, C++).

E também não estou falando mal de Java, até pelo contrário: prefiro programar em Java do que em C, apesar de ter uma grande afinidade com C. O reuso de classes já prontas fazem com que o software seja terminado em tempo muito mais rápido do que termos que criar cada vez coisas novas com o C. O melhor de C/C++ é a manipulação direta do hardware (alocação dinâmica, ponteiros), que faz com que o sistema rode muito melhor em computadores precários.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O que um compilador de C faz? Transforma o código em C pra um em Assembly que passa pelo Assembler, que monta o código em linguagem de máquina e faz o executável.

O que um compilador de Java faz? Transforma o código em Java para vários bytecodeSSSSS e armazena eles no arquivo .class. O carregador de classe lê o .class e coloca os bytecodeSS na MP, depois é feita uma verificação se cada bytecode não extravasa a segurança e ainda depois deve ser executado pela JVM.

Calma ae...

O que um compilador de Java faz? Transforma o código em Java para vários bytecodeSSSSS e armazena eles no arquivo .class.

Acabo, criou o .class e ja terminou a compilação, o resto só sera realizado na hora de executar o código, lembra como funciona o Java? O compilador pega o fonte e gera o byte code (o .class), depois na hora de executar o JVM pega esse .class e faz o que bem entender.

Concordo que ele demora bem mais pra executar, mas a compilação é mais rapida.

Transformar um fonte em código nativo é mais complicado do que no bytecode do Java (que alias, foi feito para ser simples), e isso influi o tempo de compilação, quem ja tentou fazer um compilador sabe muito bem do que eu estou falando.

E um pouco da minha experiência, não tenho o Java na empresa, mas tenho o Visual C# e o Visual C++, com um fonte muito grande e sem otimização o C++ pode demorar varios minutos para compilar, o C# só alguns segundos, a mecanica de compilação do Java é semelhante a do C#, a menos que o javac seja uma @#$%! o tempo de compilação deve ser semelhante.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Cara, pegue um fonte que faz as mesmas coisas de Java e C ou C++ ou Pascal.

Aqui no meu PC, nos da faculdade, nos dos meus amigos e no da minha mãe acontece a mesma coisa:

C compila em menos de 3 segundos.

Java demora mais de 5 segundos.

vou instala o JDK e o gcc aqui no fim de semana pra confirmar se o javac demora tanto pra compilar, no trabalho fiz um teste com o Visual C++ e C# ambos 2005, o programa só calculava o determinante de uma matrix 8x8, mas sem loops, o que da pouco mais de 40 mil linhas, tudo na função main, usei um script para gerar o fonte. O C# demorou menos de 2 segundos para compilar, o C++ sem otimizações demorou 20 segundos, com todas as otimizações eu esperei 20 minutos, mas como tinha que sair não fiquei para ver o resultado.

O .class que o Java gera é muito parecido com o .exe que o C# gera, não tem porque demorar mais, esse resultado que você disse ai ficou muito estranho, e tambem testar o gcc só pra ter certeza que não é o você++ que é lerdo mesmo.

A maquina onde trabalho é um Athlon XP 2000+.

Link para o comentário
Compartilhar em outros sites

Em Java a demora é muito maior nas seguintes configurações:

- 20 clientes magros e um servidor com processador Intel Xeon 3.0 (acho que é) com 4 GB de RAM.

- AMD Durom 950 Mhz, 256 RAM DIMM, 80 GB de HD.

- Intel Celeron 2.66 Ghz, 512 DDR

- Intel Celeron 2.66 Ghz, 1024 DDR

- Athlon XP 2.0 (1250Ghz) com 128 DIMM

- E mais um notebook Centrino (Não sei de mais nada, só o processador).

TODOS usando gcc e javac.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Membro VIP

Sem querer causar mais polêmica, fiz o teste como tinha dito antes, fiquei bem decepcionado com o javac, o processador aqui é um Athlon 64 3200+, bem melhor que o anterior, testei o J# e levou entre 3 e 4 segundos, achei um pouco estranho ser mais lento que o C# mas até tudo bem, porque alem de ler a biblioteca do .Net tem que ler a do Java*, com o javac foi só digitar javac teste.java e depois de 2 segundos... OutOfMemory...

Fiquei bem decepcionado com isso, apesar de não ser comum um metodo com 40 mil linhas as demais ferramentas não tiveram problema.

*Ou alguma coisa parecida com isso que a Microsoft criou para os fontes terem alguma compatibilidade.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Um método com 40 mil linhas de código???

Nossa... isso em Orientação a Objetos?

Nunca tinha visto isso, nem mesmo em códigos de interface com o NetBeans. Se foi em C# peço desculpas. Mas sempre achei que fosse melhor os métodos em OO não passarem de uma página. Isso em OO não em Java. Se estou errado infezlimente meu professor me ensinou errado :/

Ps.: Não estou duvidando de você EduardoS, só falei que achei estranho.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Um método com 40 mil linhas de código???

Nossa... isso em Orientação a Objetos?

Nunca tinha visto isso, nem mesmo em códigos de interface com o NetBeans. Se foi em C# peço desculpas. Mas sempre achei que fosse melhor os métodos em OO não passarem de uma página. Isso em OO não em Java. Se estou errado infezlimente meu professor me ensinou errado :/

Ps.: Não estou duvidando de você EduardoS, só falei que achei estranho.

Abraço.

:lol: Não conheço nenhum código real com um método de 40 mil linhas, em nenhuma linguagem, mas como precisava de um fonte grande e que pudesse ser facilmente usado para testar o tempo de compilação de um compilador C, C# e Java (e tava com preguiça de trabalhar em soluções mais adequadas), fiz um script para gerar esse código ai (veja posts anteriores).

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Com certeza, 40 mil linhas só pra teste mesmo, o maior arquivo fonte real que eu ja vi tinha 10 mil linhas, o que eu ja precisei mexer tinha 5 mil e xinguei até a bisavó do cara, mas tambem tem aqueles que fazem #include "metodo1parte1.h"/#include "metodo1parte2.h"/#include "metodo1parte3.h"/... só para não deixar cada arquivo muito grande, o que é ainda pior.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...