Problemas com criação de um executável(.jar)

Saudações povo do java,… então… a parada eh a seguinte…
criei um programinha simples chamado ver.java que mostra a versão atual do SO em um JOptionPane…
tudo certo até aí!.. :slight_smile: … blz
aí então eu entrei aki no forum na parte de iniciantes e vi ali no topo falando sobre criação de .jar…
então pensei: “Acho que vou criar um executável(.jar) deste programinha q fiz para ver como fica…” então… não rola!!.. :stuck_out_tongue: não sei pq… fiz EXATAMENTE igual… apesar que sei que às vezes a gente fica tropeçando no erro e não enxerga… mas eu já dei alguns socos em ponta de faca… até que resolvi pedir ajuda pra vcs… bom… o arquivo ver.java e seu .class estão dentro de uma pasta chamada version no meu desktop e no desktop está o manifest com o seguinte conteúdo:

Main-Class: version.ver Name: version/ver.class Java-Bean: True

daí eu vou no msdos, chego no desktop e executo o seguinte comando:

jar cfm versao.jar manifest.txt version.*.*

blza… ele cria o arquivo versao.jar na área de trabalho, aí então eu vou lá e executo esse arquivo, ele retorna que não encontrou o método main… ou could not find the method main…
já tentei executar ele por linha de comando no dos mas nda de tão diferente…
tenho q mecher no PATH ou fazer alguma coisa do gênero???
:?: :?: :?:

Valew!!! :razz:

Premita-me discordar, .jar não é um executavel, é só um empacotamento das classes…

e no manifest, tenta colocar assim:

Manifest-Version: 1.0
Created-By: 1.5.0_03-b07 (Sun Microsystems Inc.)
Main-Class: version.ver

e tenha certeza de que o classe ver pertence ao pacote version:

package version;

cara ainda não funcionou, me certifiquei que a ver estava no package version, adicionei akele código que vc me passou no manifest, depois deletei meu manifest e deixei soh o seu e não deu nda…
ele retorna outros erros… primeiro dá um erro no header do manifest e outro foi de duplicado qdo eu coloquei os dois juntos, daí eu tirei a linha de duplicada não deu certo tbm… :mad:

Cara tem como vc postar sua estrutura de diretórios…

jar cfm versao.jar manifest.txt version.*.*

Esse comando você está executando uma pasta antes da “version”, neh?
Se você estiver em:
c:\pasta_mae\version>
Vai dar erro.

Tem que estar em:
c:\pasta_mae>

Deixa eu fazer umas perguntas idiotas:

  1. você colocou “package version;” no ver.java?
  2. você compilou o ver.java a partir da “pasta_mae” ou dentro da pasta “version”? (Tem que ser a partir da “pasta_mae”).

Executa o jar a partir do DOS que você consegue ver o erro que está dando…

java -jar seuarquivo.jar

porque quando você simplesmente abre o arquivo no windows, qualquer erro que der vai aparecer “Cannot find main class”

AAAhhhhh… agora não compila nem o código, vou mandar o código pra vcs darem uma olhada pra saber onde eu estou comendo bola…

[code] package version;

import javax.swing.*;

public class ver{

public static void main(String args[]){

String version;
version = System.getProperty("os.name");
JOptionPane.showMessageDialog(null,version,"SO Version!",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}
}[/code]

O erro eh este:
Exception in thread “main” java.lang.NoClassDesFoundError: ver (wrong name: version/ver)

o código está tãio simplificado que eu nem tenho idéia de onde esteja dando erro… :???:

estou dentro da pasta version, compilo ele e executo mas nda… javac ver.java e depois java ver…

estou certo?? e minha jvm está funcionando certinho !

Minha estrutura de diretórios:

Desktop\manifest.txt(de onde estou executando o comando para empacotar)
Desktop\version\ver.java;ver.class(local onde estão minhas classes)

valeu pela ajuda galera…!!

O meu jar ta meio loco… hehehe

Eu gero o .jar da aplicação e consigo executar ele normal dando 2 cliques, mas se eu trocar meu arquivo .jar para outra pasta ele para de funcionar.

Alguém poderia me ajudar ???

O codigo está certo, tente dar uma olhada no seu CLASSPATH se tem um . lá…

cara o pior eh que meu path eh o seguinte:

D:\Arquivos de programas\Java\jdk1.5.0_03\bin\

meu windows eh o XP, eu tenho q apenas setar esse endereço ali nas propriedades do meu computador, avançados, variaveis de ambiente e lá em Path eu edito e adiciono essa linha no começo dakela certo??
:sad:

jairelton, tem sim o . no CLASSPATH

meu manifest está assim:

Manifest-Version: 1.0 Class-Path: controle/bin/externo.jar Main-Class: controle.Main

e eu gero o jar assim:

C:\>jar cfm teste.jar Manifest.mf controle*.*

O que eu ainda num entendo é que se eu troco o arquivo teste.jar da pasta C: para qualquer outra … ele simplismente para de funcionar.

:grin:
sakurai…
cara acho q o jairelton tava perguntando sobre o meu classpath, se havia algum ponto nele… se eu estiver errado entao me corrijam…
acho q o certo eh vc abrir um novo tópico dizendo que seu jar não funciona qdo vc muda de pasta!!!
valew… :wink: