Como executar

25 respostas
ajob

Tipow, escrevi o código fonte. Usando o eclipse 3.4, e digamos agora que quero deixar ele executavel, tipow mandar o programa por e-mail ou algo assim para que alguem lá do outro lado execute ele… sacam? Como faço? Já me explicaram uma vez, mas eu naão entendi, ja procurei no google e tudo mais em nada achei uma resposta coesa, e quando tento não funciona… Se algume poder ajudar… abração

25 Respostas

alucardeck

vc gera um arquivo .JAR
e envia ele para os seus amigos…

mas o arquivo .JAR soh roda em maquinas q possuem o JRE instalado…

eh o preço da portabilidade…

B

Ola,

Crie um jar.

http://www.guj.com.br/java.tutorial.artigo.42.1.guj

ajob

Galera tudo muito bonito, mas…

no tutorial acima colocado o cara manda eu usar uns comandos…

p.s. eu não sei onde usar esses comandos…

tentei prompt, tentei execut… mas nada… na pasta onde instalei o sdk tmbem não tem nenhu lugar inde posso digitar isso…

criei um jar pelo eclipse, mas quando executo nada acontece… nem ao menos abre alguma coisa…

B

ajob:
Galera tudo muito bonito, mas…

no tutorial acima colocado o cara manda eu usar uns comandos…

p.s. eu não sei onde usar esses comandos…

tentei prompt, tentei execut… mas nada… na pasta onde instalei o sdk tmbem não tem nenhu lugar inde posso digitar isso…

criei um jar pelo eclipse, mas quando executo nada acontece… nem ao menos abre alguma coisa…


Os comando são no prompt, mas tem que ter a variável do java setada no seu class-path.

ajob

eu executo no prompt e da o seguinte comando

jar não é reconhecido ocmo um comando interno ou externo, um programa operavel ou um arquivo em lotes…

B

ajob:
eu executo no prompt e da o seguinte comando

jar não é reconhecido ocmo um comando interno ou externo, um programa operavel ou um arquivo em lotes…

pois é, tem que setar a variável de ambiente… se vc digitar “javac” tb vai dar a mesma msg…

http://www.google.com.br/search?q=setar+variável+de+ambiente%2Bjava&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a

ajob

:cry: Não consigo :cry:

Ja segui tudo que la diz, ate baixei umas apostilas fiz o que elas mandaram, mas nada…

tipow uma manda eu ir la em variáveis de systema e em path e colocar
C:\Arquivos de programas\Java\jre1.6.0_07\bin;

antes do comando

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

p.s. eu troquei jre1.6.0_06 pelo jre1.6.0_07 pois é o que tenho instalado

mas mesmo assi quando vou para o prompt o erro da o mesmo

ajob

é sério galera, eu uso o eclipse 3.4 la ele cria um .jar quando vc exporta os arquivos, mas quando eu executo nada rola…

ai tentei seta uma variavel para executar pelo dos mas nada…

alguem da uma força

alucardeck

não deveria ser JDK ?

no classpath vc esta colocando C:\Arquivos de programas\Java\jre1.6.0_07\bin;

deveria ser a JDK e nao JRE…
C:\Arquivos de programas\Java\jdk1.6.0\bin

ajob

Bem alucardark vlw a ajuda era isso mesmo…

mas

ainda assim eunão consigocriar um.jar como especificado no tuto…

dai que se eu colocar para executar um que eu tenha criado pelo eclipse ele roda e tudo…

mas mesmo assim a minha dúvida ainda permanece…

sempre que eu quiser executar oarquivo que eu criei vou ter que abrir o promp e executar?

ou seja se eu fizer um programa para um cliente vou ter que mandar o manual do prompt?

pois o arquivo.jar que eu criei(pelo eclipse) não executa quando clico duas vezes

B

ajob:
Bem alucardark vlw a ajuda era isso mesmo…

mas

ainda assim eunão consigocriar um.jar como especificado no tuto…

dai que se eu colocar para executar um que eu tenha criado pelo eclipse ele roda e tudo…

mas mesmo assim a minha dúvida ainda permanece…

sempre que eu quiser executar oarquivo que eu criei vou ter que abrir o promp e executar?

ou seja se eu fizer um programa para um cliente vou ter que mandar o manual do prompt?

pois o arquivo.jar que eu criei(pelo eclipse) não executa quando clico duas vezes

Ola,

Vc tem como configurar para o eclipse colcoar no manifest, que vc pode ver o que é no tuto, e assim o duplo-clique vai funcionar…

alucardeck

alucardark? :evil:

vc setou a Main-class na hora de criar o jar ?
Export… JAR…

na opção JAR File… o nome do JAR obviamente…
Next…
Next (dinovo)…
na opção Main Class aperte Browser… e escolha a Main class do seu programa…
(se o programa for pequeno provavel q soh apareça ela)

ajob

Bruno Carlo…

Tentei colocar o manifest mas as únicas opções que aparecem la é

Generate the manifest file(Que ja vem selecionada)
ou
use existing manifest from workspace(ai eu tenho que especificar onde esta)

alucardEck

cara eu fiz isso mas
nada

alucardeck

estranho entao…

dando 2 cliques no arquivo .JAR… não aparece nenhuma msg de erro? nem nada ???

o seu programa esta rodando normal pelo eclipse ???

ajob

ta
perfeitamente…
equando eu executo pelo prompt tb…
mas ja tentei pelo eclipse e naum consigo…
sem contar que esse arquivo manifest não existe no worspace…

alucardeck
  1. tentou criar um JAR pelo prompt… e depois rodar ele no windows… roda ou nao?

  2. tentou pegar um JAR pronto da net… e rodar ele? (um q funcione de verdade, posso te fornecer um se precisar)

ajob

tentar criar pelo prompt ele criou um arquivo.jar de 1kb e não executa da um erro

eu utilizei o seguinte comando

jar cf arquivo.jar “Tentativa”,
pois é dentro da pasta tentativa que esta os aquivos que o eclipse fornece qe são
.classpath
.project
bin - PassagensDeAvião - Execute.class
- Poltronas.class
src - PassagensDeAvião - Execute.java
- Poltronas.java

quando tento criar usando o comando

jar cmf “tentativa/bin/passagensdeavião/execute.class” arquivo.jar “tentativa”

ele da erro java.io… invalid header field

a parte de baixar e testar ainda naum

Marky.Vasconcelos

Uso o próprio export… Java > JAR File do eclipse que é mais fáçil, apenas escolha a classe Main e deixe ele criar para você, caso voce use alguma outra biblioteca (Drivers de bancos, Hibernate, etc…) voce pode pesquisar sobre FatJar que empacota tudo pra voce em um Jar na mesma facilida que o Eclipse faz, e o FatJar é um plugin para o Eclipse facilitando ainda mais o uso.

ajob

É ai que ta…

o eclipse cria o .jar, mas quando clico duas vezes no arquivo nada acontece, nem ao menos messagem de erro. só se eu abrir o prompt e pedir para executar por lá, mas ai se eu precisar mandar um arquivo para o cliente, apenas com o demo… vou ter que mandar um tuto explicando prompt para ele??? acredito que não, então como faço para gerar o arquivo e ele executr com clique du??

alucardeck

bom dia…

bom acabei de fazer um programa para vc testar ae…
esta logo abaixo

tente rodar ele… dando 2 cliques normalmente…

deixei todas as configurações DEFAULT de criar um JAR no eclipse…
setando apenas o nome do arquivo e o Main-Class (depois dos 2 nexts)

ajob

rsrsrssrsr... gostei da mensagem...

abriu sim...

agora por favor me ajuda a descobrir o erro...

la vai...

o progrma que tento exportar tem duas classes...
a primeira tem o codigo

package PassagensDeAvião;

public class Execute {
	public static void main(String args[]){
		Poltronas exe = new Poltronas();
		exe.menu();
	}

}

e a segunda

package PassagensDeAvião;

import java.util.Scanner;

public class Poltronas {
	
	private boolean poltronas[] = new boolean[10];
	private String nomes[] = new String[10];
	private Scanner ent = new Scanner(System.in);
	
	public void PoltronasVagas(){
		System.out.println("As poltronas vagas\n Primeira classe:");
		for(int i = 0; i<5; i++){
			System.out.printf("%d:\t", i+1);
			if(poltronas[i])
				System.out.println("Ocupada");
			else 
				System.out.println("Livre");
		}
		System.out.println("Segunda classe:");
		for(int i = 5; i<10; i++){
			System.out.printf("%d:\t", i+1);
			if(poltronas[i])
				System.out.println("Ocupada");
			else 
				System.out.println("Livre");
		}
	}
	
	public void CompraVenda(){
		PoltronasVagas();
		if(LotacaoTotal()){
			System.out.println("Próximo vôo daqui a três horas:");
			menu();
		}
		else{
		System.out.println("Digite a Classe que você deseja viajar:");
		int x = ent.nextInt();
		if(x==1){
			
			if(LotacaoPrimeira()){
				System.out.println("Primeira Classe lotada. Favor tente a segunda classe.");
				CompraVenda();
			}
			else{
				System.out.println("Digite a poltrona que você deseja");
				int cliente = ent.nextInt();
				while(poltronas[cliente-1]){
					System.out.println("Escolha outra poltrona, pois esta esta ocupada:");
					cliente=ent.nextInt();
				}
				poltronas[cliente-1] = true;
				System.out.println("digite o nome do comprador:");
				nomes[cliente-1]=ent.next();
				menu();
			}
		}
		else{
			
			if(LotacaoSegunda()){
				System.out.println("Segunda Classe lotada. Favor tente a Primeira classe.");
				CompraVenda();
			}
			else{
				System.out.println("Digite a poltrona que você deseja");
				int cliente = ent.nextInt();
				while(poltronas[cliente-1]){
					System.out.println("Escolha outra poltrona, pois esta esta ocupada:");
					cliente=ent.nextInt();
				}
				poltronas[cliente-1] = true;
				nomes[cliente-1]=ent.next();
				menu();
			}
		}
		}
	}
	public boolean LotacaoPrimeira(){
		int ocupadas=0;
		for(int i = 0; i<5; i++){
			if(poltronas[i])
				ocupadas++;
		}
		if(ocupadas==5)
			return true;
		else
			return false;
	}
	public boolean LotacaoSegunda(){
		int ocupadas=0;
		for(int i = 5; i<10; i++){
			if(poltronas[i])
				ocupadas++;
		}
		if(ocupadas==5)
			return true;
		else
			return false;
	}
	public boolean LotacaoTotal(){
		if(LotacaoPrimeira()&&LotacaoSegunda())
			return true;
		else
			return false;
	}
	public void impressao(){
		System.out.println();
		System.out.println("Digite a poltrona do cliente:");
		int poltro = ent.nextInt();
		for(int i = 0; i<=30; i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println();
		System.out.printf(" %s\n", nomes[poltro-1]);
		System.out.println();
		if(poltro<=5)
			System.out.printf("Poltrona: %2d, 1ª Classe\n ",poltro);
		else
			System.out.printf("Poltrona: %2d, 2ª Classe\n",poltro);
		System.out.println();
		for(int i = 0; i<=30; i++)
			System.out.print("-");
		System.out.println();
		menu();
	}
	
	public void Exit(){
		System.out.println("Obrigado por voar na companhia tomara-que-naum-caia.");
	}
	
	public void menu(){
		System.out.println("Digite a opção que corrensponde a operação que deseja realizar:");
		System.out.println();
		System.out.println("1 - Vender Passagem");
		System.out.println();
		System.out.println("2 - Verificar Lotação do Avião");
		System.out.println();
		System.out.println("3 - Imprimir passagem");
		System.out.println();
		System.out.println("4 - Sair");
		System.out.println();
		int opcao = ent.nextInt();
		switch(opcao){
		case 1:
			CompraVenda();
			break;
		case 2:
			PoltronasVagas();
			LotacaoTotal();
			menu();
			break;
		case 3:
			impressao();
			break;
		case 4:
			Exit();
		}
			
	}

}

vou em exportar no eclipse e aparece a seguinte tela

[img]http://img357.imageshack.us/img357/4792/imagem1cv2.jpg[/img]

eu escolho arquivo jar e clico em next, dai aparece essa tela

[img]http://img503.imageshack.us/img503/290/imagem2lr2.jpg[/img]

aqui eu escolho o pacote onde esta o aplicativo que quero exportar e em jar file escolho o local para onde o arquivo vai, em seguida aperto next e aparece essa tela

[img]http://img503.imageshack.us/img503/4267/imagem3rx8.jpg[/img]

aqui deixo tudo como esta e passo para a próxima tela

[img]http://img214.imageshack.us/img214/6352/imagem6iv4.jpg[/img]

nessa daqui eu especifico a classe que contem o main class e finalizo
dai ela gera o arquivo, porém não roda...

E ai onde esta meu erro????

alucardeck

po cara…

obvio q nao roda…
vc tah rodando ele no console…

qdo vc criar um .JAR… ele nao vai abrir um console pra vc usar…
ele soh iria rodar um arquivo “desktop” mesmo…

na verdade o programa esta rodando sim…
mas nao tem como ele mostrar um console pra vc controlar com as “teclas”

ajob

assim sim…

entendi…

ei cara valeu mesmo…

ei mas só para confirmar, o console que vc fala seria algo tipo uma ide, alguma coisa do pacote frame? tipo eu criaria uma ide de execução ai ele executaria bonitinho?

alucardeck

console é aquela telinha q existe no Eclipse...
tipo um prompt...

se vc ker fazer algo "visual" mesmo para executar num Jar...
aconselho a fazer em modo grafico com Swing... vai dar um pouco mais de trabalho... mas ai vc pode transportar para seus amigos...
(não tenho certeza se eh possivel "invocar" um console para o programa)

pra vc começar a pesquisar.. vou te enviar o fonte do JAR q mandei lah em cima..

public class Frame extends JFrame{
   
	private static final long serialVersionUID = 1L;

	public void Executa(){
		setTitle("...");
		setLocation(100,100);
		setResizable(false);
		
		JLabel label = new JLabel("Se voce consegue abrir esse JAR, então o erro é seu! xD");
		JPanel panel = new JPanel(new FlowLayout());
		
		panel.add(label);
		add(panel);
		
		pack();		
		setVisible(true);
	}
	
	public static void main(String []args){
		Frame app = new Frame();
		app.Executa();
	}

}
I

eu nao sei de nada, nem ligar o computador ew sei direito , entao de sew jeito

Criado 15 de julho de 2008
Ultima resposta 6 de mai. de 2009
Respostas 25
Participantes 5