Criacao de exe e jar

Frankie, bem-vind

qndo vc tiver com um problema, é bom postar o erro (ou exception) q esta ocorrendo

se possível, poste o trecho do código onde esta ocorrendo o problema

Obrigado pela recepção microfilo…

Mas o problema é esse, como ele roda direto do jar não tem como ver qual tipo de erro ou exception está ocorrendo…
O q acontece é que qdo eu rodo o programa pelo NetBeans ele funciona normal, mas qdo eu rodo pelo jar, ao clicar no botão “Salvar” do cadastro, por exemplo, não acontece nada.
Então a suspeita minha é de que o NetBeans guarda num lugar as pastas de lib e src da plataforma JSDK…e qdo eu rodo o jar ele não reconhece os “import java.sql.*” da vida…
Eu já joguei o CLASSPATH(lib e jre/lib) e PATH(bin) do JSDK nas variáveis de ambiente do win xp.
Bom, se alguém puder ajudar eu agradeço, já que comecei a mexer com java há pouco tempo e ainda tô cheio de vícios do Delphi!

Cara,

Eu segui exatamente o seu tutorial, blz.
Mas ele naum consegue achar a classe.

Ele cria o jar, mas quando eu dou os 2 cliques ele mostra essa msg:

“Could not find the main class. Program will exit.”

Mt grato.

Euclydes

Frankie:

vc pode rodar um .jar pelo console, assim vc vera a slacktrace…
para rodar um programa encapsulado em um .jar pelo console:

java -jar arquivo.jar

newInJava:

seja bem-vindo

o problema é que vc não definiu a sua classe principal (main-class)
para defini-la vc deve criar um arquivo chamado manifest, e nele vc deve indicar a main-class

ex:

Main-Class minhaClasse.class

Ok! Realmente perderia a portabilidade em se usar a JVM nativa do sistema operacional quando gerado um .exe, porém deve-se existir programas que geram executaveis para windows, outros que geram para linux, outros pra Mec, etc…

Não há?

Cara,

Muito obrigado pelas boas vindas, mas eh o seguinte …

eu criei o manifest e disse a classe main, mas ele naum acha …

eu vou tentar rodar pelo console para ver c da certo …

Muito obrigado mais 1 vez …

Netto

Esse programa eu creio que não seja, pelo menos na descrição dele que eu encontrei na internet não fala nessa funcionalidade!!!

Se alguém tiver algum outro programa que gere um .exe que não necessite da JVM, posta aí!!

Obrigado!

Olá pessoal,

Mas e compilando através do GCJ ? Me parece que o GCJ compila arquivos java para código nativo dispensando o JRE.

Dessa forma poderia distribuir a aplicação sem se preocupar se os usuários terão a JRE instalada.

Até +

Rafael S.

[quote=“Ghost-in-the-shell”]Olá, vocês estão falando do tamanho do .EXE … Existem programas que “comprimem” o executável diminuindo seu tamanho…

Não seria o caso áí para este .EXE feito em java…???

O que acham…???

Até…[/quote]

Na real, o JAR acaba nao fazendo diferença… ele é só um zip com outro nome. Na hora de rodar a aplicação a jvm “olha” dentro dele (heheh, “olha” é brabo neh)…

[quote=“mavi”]Um .exe é uma otima pedida a quem quer fazer algo facil e simpler para o end user e usando sua linguagem preferida.

Alem do fato que alguns compiladores tem o .exe mais rápido que o método normal (seja compilado, interpretado, mixed…)…

Eu não gosto de C# e prefiro muito mais usar um .exe do que fazer uma gambiarra horrenda pra rodar o negócio no sistema do usuário…

Agora, se o windows viesse como padrão pra considerar o .JAR como executável (e automaticamente rodar a JVM) aí seria outros 500…[/quote]

Se é pra rodar em windows, um .exe ou um .jar não fazem diferença… um clique duplo executa de qqr jeito… :oops:

Muito bom a sua documentação…
Legal.

Legal a sua documentação…
Muito Bom

Segui os passos que eu vi aqui no forum para criar um JAR mas, quando executo ele ta dando esse erro:

’ Failed to load Main-Class manifest attibute from c:\teste2\testando.jar "

O codigo usado

package pacoteJar;

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


package pacoteJar;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class dados extends JFrame {
JLabel l1 = new JLabel(“Nome:”);
JLabel l2 = new JLabel(“CPF:”);
JLabel l3 = new JLabel(“Endereço:”);
JLabel l4 = new JLabel(“Sexo <H OU M>:”);
JLabel l5 = new JLabel(“Idade:”);
JTextField t1 = new JTextField (20); JTextField t2 = new JTextField (20); JTextField t3 = new JTextField (20); JTextField t4 = new JTextField (20); JTextField t5 = new JTextField (3);
JButton bMostrar = new JButton(“Mostrar”);
JButton bSair = new JButton(“Sair”);
JButton bAtualizar = new JButton(“Atualizar”);
JButton bNomeR = new JButton(“Nome Reduzido”);
JButton bValidaCPF = new JButton(“Valida CPF”);
JButton bMensagem = new JButton(“Mensagem”);

public dados() {
	Container c = getContentPane();
	setSize(450,520);               		c.setLayout(new BorderLayout()); 
	Container norte = new Container();
	norte.setLayout(new GridLayout(6,2)); 
	norte.add(l1);             
	norte.add(t1);   
	norte.add(l2);  
	norte.add(t2);  
	norte.add(l3);             
	norte.add(t3);   
	norte.add(l4);  
	norte.add(t4);
	norte.add(l5);  
	norte.add(t5);

	Container centro = new Container();
	centro.setLayout(new GridLayout(1,1));
	

	Container sul = new Container();
	sul.setLayout(new GridLayout(6,2));
	sul.add(bMostrar);
	sul.add(bAtualizar);
	sul.add(bNomeR);
	sul.add(bValidaCPF);
	sul.add(bMensagem);
	sul.add(bSair);
	
	c.add("North",norte);
	c.add("Center",centro);
	c.add("South",sul);
	show();
	bSair.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
					System.exit(0);
			}
			});
}

}

Criei a pasta c:\teste2
criei o arquivo manifest.mf e coloquei ==> Main-Class: pacoteJar.Principal
criei a pasta c:\teste2\pacoteJar e adicionei os arquivos dados.class e principal.class.

depois na pasta c:\teste2 digitei ==> jar cfvm testando.jar manifest.mf pacoteJar/*.class.

Ele criou o arquivo testando.jar, mas quando clico no arquivo ta dando o erro que eu mencionei acima.

’ Failed to load Main-Class manifest attibute from c:\teste2\testando.jar "

Alguem pode me ajudar? Eu peguei outro exemplo parecido com esse e deu tudo certo!

Seguinte criei um arquivo jar através do eclipse, e outro através do DOS, em ambos os casos tentei executá-lo em uma máquina que não possuia o J2SDK instalado e nos dois casos não rodou, alguém pode me ensinar uma forma eficiente de se fazer um, se é que é possível que ele rode da mesma forma que um executável, ou seja vc da dois cliques nele e ele rode sem necessitar de outros aplicativos instalados na máquina ou até mesmo uma forma de fazer a instalação dos programas necessários para rodar o JAR na máquina de uma pessoal que não tenha o J2SDK

[]'s
FHS

Obrigado

O que vc está fazendo, não rola em java. A alta compatibilidade de java deve-se à instalação prévia de uma jvm (java virtual machine). Geralmente, o ruindows já vem com uma jvm pobrezinha, q só quebra galho, portanto, não é impossível rodar um jar na máquina.
Há alguns compactadores, como o winrar q identificam o jar como um pacote de compressão, como se fosse um rar ou zip… configure seu compactador pra não acessar jar’s e seu so para executá-lo, de mais, é só sair pro abraço… :wink:

Quer dizer que sempre que eu entregar um programa para o meu uisuário eu vou ter que exigir que ele instale mais 51MB no computador para poder rodar meu programa???

Se for assim não vejo tanta vantagem assim na portabilidade do pois, se eu fizer um programa leve supondi que ocupe ae uns 10MB quando meu usuário for usá-lo ele vai ter que instalar tb a J2SDK???

Existe alguma máquina virtual que seja mais leve ocupe menos espaço em disco, gostaria de que se alguém puder por favor escreva algo para me dizer como faria na seguinte situação!!!

Eu crio meu programa vou criar seu instalador, quero fazê-lo instalar junto com ele a virtual machine para que usuário possa rodar meu software, quais programas uso e como eu poderia fazer isso da melhor forma possível???

Kra teu artigo ficou muito bom, vai me ajudar muito, valeu …

johnny

Pessoal sou novo neste fórum é uma das minha primeiras mensagens se não a primeira … mas vcs foram até a lua e voltaram neste tópico e não esclareceram (pelo menos não percebi) como se burla o esquema de utilizar uma ferramenta ou se existe uma que gere um .exe ou seja que execute direto sem a nescesidade de ter a JVM instalada …ou seja o próprio executavel teria ela … isso facilita muito para usuarios burros … que se lasque a portabilidade pois se tiver com fazer isso é muito mais facil gerar um executavel para linux e outro para win duas versões doque portar uma …pois deste modo eu barro o dito suporte ou até mesmo terque ir até o cliente instalar … fica muito mais facil …

enfim alguem conhece alguma meneira de fazer isso ???

Também sou novato no portal e achei um programa na NET que diz criar arquivos .exe a partir de arquivos java, ainda não testei mas vo disponibilidade ele pra vocês, pra quem quiser testar e um freeware chama Janex]|[Builder 1.0 e eu achei no baixaki.
Vina

Bom dia, preciso ler e escrever em um arquivo txt dentro do jar, como faço? Já tentei de tudo, e tudo deu errado, não posso especificar o diretório, pois o jar rodará em diversas máquinas e diversos clientes, já tentei:
URL vURLJar = this.getClass().getResource(“conf.txt”);
mFile = new File(vURLJar.getFile());
mFileReader = new FileReader(mFile); // da erro aqui
/////////////////// ou //////////////////////////
mFile = new File(“conf.txt”); // da erro aqui