Criacao de exe e jar

O que a galera quer saber:

Existe um compilador para java, se chama GCJ, dos mesmos caras que criaram o melhor compilador de C/C++, mas ainda não funciona com AWT nem com SWING.

http://gcc.gnu.org/java/

E ponto final.

Olás. Tenho uma dúvida e uma solução.

Sou novo em Java (comecei em maio) e neste forum (primeiro post).

Seguinte, o código do jeito que está nesse tutorial do Felipe não funcionou aqui comigo. Tentei fazer o Principal.java e o criarFrame.java separados e compilar o criarFrame e depois o Principal (já que a classe criarFrame está como public), mas dá o seguinte erro:

C:\faz_jar\pacoteJar>javac Principal.java Principal.java:7: cannot resolve symbol symbol : class criarFrame location: class pacoteJar.Principal new criarFrame(); ^ 1 error
obs.: o circunflexo deve aparecer sob o c do criarFrame().

Como faz para resolver esse problema deixando separado em dois arquivos (o código é exatamente aquele que o Felipe deixou no tutorial)?


Agora como eu fiz funcionar (em um único arquivo Principal.java):

[code]package pacoteJar;
import javax.swing.*;

public class Principal
{
public static void main(String[] args)
{
new criarFrame();
}
}

class criarFrame extends JFrame
{
public criarFrame()
{
super(“Frame de exemplo”);
setBounds(120,120,250,250);
show();
}
}[/code]
obs.: a classe criarFrame deixa de ser public e as seguintes linhas vão para o início do arquivo:
package pacoteJar;
import javax.swing.*;

Arquivos usados:
c:\faz_jar\manifest.txt
c:\faz_jar\pacoteJar\Principal.java

Olá galera,

tava fazendo o .jar mas n hora de rodar o aplicativo apareceu a mensagem de erro abaixo:

Could not find the main class. Program will exit.

O meu arquivo manifest.txt tava da seguite forma:
Main-Class: C:\tutorial\pacoteJar\Teste.java
Name: C:\tutorial\pacoteJar\Teste.class
Java-Bean: True

poderiam me ajudar pessoal…
valeu…
T+[/i]

Usa desse jeito:

Main-Class: pacoteJar.Principal
Name: pacoteJar/Principal.class
Java-Bean: True

Se você mudou a classe para Teste usa assim:
Main-Class: pacoteJar.Teste
Name: pacoteJar/Teste.class
Java-Bean: True

teste

Galera quando tento executar um jar pelo prompt recebo a seguinte mensagem

Exception in thread “main” java.lang.NoClassDefFoundError: pacoteJar/Principal

Alguém sabe o porque disto?

Outra coisa --> Quando tento executar um jar pelo ícone, ele me abre o winzip. Isto está correto?

1º erro: compile a partir de um diretório antes (quando usa 2 arquivos tem que ser assim, se fizer num arquivo só como eu expliquei no meu outro post não precisa).

2º erro: windows explorer -> ferramentas -> opções de pasta -> escolhe a aba tipos de arquivos -> procura por “Executable Jar File” -> altere o open para:
“C:\Arquivos de programas\j2sdk1.4.1_02\bin\javaw.exe” -jar “%1” %*

OBS.: mude o endereço para se adequar ao seu sistema

Ah, antes dá uma olhada no winzip e desvincula a extensão.
Um xunxo no win98 p/ fazer isso é apertar o shift e clicar num arquivo .jar com o botão direito, aí no “Abrir com…” você procura o seu javaw. Depois só modifica como eu expliquei anteriormente.

Não esqueça de marcar o “sempre usar esse programa…” no “abrir com…”

Descobri uma maneira de criar executáveis! E o negócio realmente funciona.
E realmente não sei pq todos ficam fazendo segredo a respeito desse programa…

Para isso usa-se o programa [color=“red”]Excelcior JET.[/color]

Aproveitem.

[quote=“JavaDrops”]1º erro: compile a partir de um diretório antes (quando usa 2 arquivos tem que ser assim, se fizer num arquivo só como eu expliquei no meu outro post não precisa).

2º erro: windows explorer -> ferramentas -> opções de pasta -> escolhe a aba tipos de arquivos -> procura por “Executable Jar File” -> altere o open para:
“C:\Arquivos de programas\j2sdk1.4.1_02\bin\javaw.exe” -jar “%1” %*

OBS.: mude o endereço para se adequar ao seu sistema[/quote]

JavaDrops,
Não entendi muito bom a questão do 1o erro.
Estou com o mesmo problema, criei um .Jar via Eclipse, quando dou um duplo clique no arquivo ele nao faz nada, se vou via Prompt e uso o java -jar, ele me retorna o seguinte erro: Exception in thread “main” java.lang.NoClassDefFoundError: janelaprincipal
at Principal.main(Principal.java:18)

Acredito que estou fazendo tudo certo via Eclipse, pois preencho todos os campos solicitados e o próprio eclipse gera meu Manifest. O que pode ser isso?? Agradeço a ajuda!

Então, no meu caso (usando o package pacoteJar) estava dando esse erro:
Exception in thread “main” java.lang.NoClassDefFoundError: pacoteJar/Principal

Isso pq eu estava compilando dentro do diretório
c:\faz_jar\pacoteJar
com o comando
javac Principal.java

Mas o certo era compilar dentro do diretório
c:\faz_jar
com o comando
javac pacoteJar\Principal.java

Mas isso na linha de comando, não sei como funciona com o Eclipse.

:twisted:
Esse tutorial ficou legal…
É esse tipo de contribuição que transforma o PJ na maior comunidade Java do Brasil…
WS

como criar o .jar pelo NetBeans 3.6??? Alguem pode passar um passo-a-passo ? :cry:

galera no meu roda bonitinho, criei o jar redondinho, o executável tbm roda que é uma beleza só que em outros computadores não roda de jeito nenhum…
eu passo o .jar ou o .exe mas nda…
dá sempre o mesmo erro nos outros computadores, could not find main class… ou coisa assim…
oq eu tô fazendo de errado?? tem q mandar a classe junto ou o alguma outra coisa???
:sad: :sad: :sad:

[quote=“Felipepontojava”]galera no meu roda bonitinho, criei o jar redondinho, o executável tbm roda que é uma beleza só que em outros computadores não roda de jeito nenhum…
eu passo o .jar ou o .exe mas nda…
dá sempre o mesmo erro nos outros computadores, could not find main class… ou coisa assim…
oq eu tô fazendo de errado?? tem q mandar a classe junto ou o alguma outra coisa???
:sad: :sad: :sad:[/quote]

Felipe, essa outra máquina tem que ter o JVM.

Além disso a extensão .jar tem que estar adequadamente associada ao Java.

Para Win98 e usando j2sdk1.4.2_08:

  • abra Windows Explorer
  • vá no menu Ferramentas
  • escolha Opções de pasta…
  • na aba Tipos de Arquivo procure por “Arquivo .JAR” ou “Executable Jar File” (explicarei ao final o que fazer se não estiver como um desses)
  • edite o tipo e em “Open” (se não tiver: crie) coloque (com as aspas):
    “C:\j2sdk1.4.2_08\bin\javaw.exe” -jar “%1” %*
    ou
    “C:\j2sdk1.4.2_08\bin\java.exe” -jar “%1” %*
    (a diferença é que no segundo além da janela da sua aplicação fica aberta uma janela DOS)

Observações:

  • verifique se o caminho está correto
  • o “%*” ao final é como o Java associa a extensão quando é instalado, mas funciona sem
  • as aspas envolvendo o %1 são importantes para o caso de pastas com espaço no nome

O que fazer se o .JAR não estiver associado a um dos nomes que eu indiquei:

  • localize um arquivo .JAR no windows explorer
  • pressione a tecla Shift (mantenha pressionada) e clique com o botão direito sobre o arquivo
  • aparecerá a opção “Abrir com…”, clique nela (pode soltar o Shift)
  • marque a caixa “Usar sempre…” e clique no botão “Outros”
  • procure seu javaw.exe (ou java.exe)
  • clique em OK
  • isso não associa direito a extensão (falta o -jar), você vai ter que entrar nas “Opções de Pasta” e arrumar conforme eu escrevi no começo

Valeu JavaDrops tua explicação vai ficar guardada, eu sabia que tinha que ser configurado para o windows reconhecer o .jar mas ainda não sabia como, já tinha olhado em alguns lugares mas ainda não tinha encontrado como fazer… :grin:
agora já me liguei como faz!!.. valeu…
cara soh tem um probleminha… eu estou passando minha aplicação para end users que não conseguem fazer essa configuração… e eu nem tenho como fazer essa configuração no pc deles remotamente…
eles tem a JVM(ou JRE) pois eu testei fazendo eles entrarem em alguma páginas que utilizam o java para carregam corretamente…
soh q como o .jar sem prévia configuração não eh possível a execução da aplicação então eu criei um .exe… porém nem com esse .exe eles entraram!!! como eh possível isso… eu criei um .exe que ficou bem, leve, com o JSmooth… ele aumenta um pouco mais que o .jar apenas, não chega a incluir a jvm dentro do .exe mas mesmo assim, eu entro e eles não entram… galera eu estou perdido…
se alguém souber oq está acontecendo…
e tiver como me dar uma mão… valeu!!! :grin:

Não entraram como? Não executa? Dá mensagem de erro?
Sei que com applet pode dar problema dependendo da versão do plugin que a pessoa tem instalado ou da JVM e que é bom compilar com:
javac classe.java -target 1.1

Mas não sei se isso vale para aplicativos também.

para end users eu fiz um executável, pra não ter q configurar o .JAR soh q quando clicam lá eme diz: could not find main class…
e no meu computador executa certinho… pq será isso???
me falaram pra mandar o arquivo com um .bat, soh q eu gostaría de poder mandar apenas um arquivo…
:sad:
tem q ser possível, qual a melhor maneira de entregar um projeto a um cliente por exemplo, vc não passaría apenas um arquivo para ele executar???

Tem que ver se o CLASSPATH está certo e se a JRE deles é compatível com a versão na qual você compilou.