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í!.. … 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!!.. 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:
- você colocou “package version;” no ver.java?
- 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.
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…