Problema com JAR

Não sei o pq mas quando eu crio um .JAR ele nao roda direito(roda pela metade)…ele soh roda na pasta do projeto…mais precisamente na pasta SRC…ai ele roda certinho…mas se eu coloco ele no desktop por exemplo ele roda pela metade…creio eu q seja pelas bibliotecas q eu estou usando…mas nesse mesmo projeto eu criava o .JAR e ele rodava perfeitamente no desktop…mas eu acho q eu mudei alguma configuração e nao percebi…pq agora ele soh roda na pasta src…alguem sabe o q eu posso fazer pra arrumar isso!?

Desde ja agradeço!

[quote=Schoker]Não sei o pq mas quando eu crio um .JAR ele nao roda direito(roda pela metade)…ele soh roda na pasta do projeto…mais precisamente na pasta SRC…ai ele roda certinho…mas se eu coloco ele no desktop por exemplo ele roda pela metade…creio eu q seja pelas bibliotecas q eu estou usando…mas nesse mesmo projeto eu criava o .JAR e ele rodava perfeitamente no desktop…mas eu acho q eu mudei alguma configuração e nao percebi…pq agora ele soh roda na pasta src…alguem sabe o q eu posso fazer pra arrumar isso!?

Desde ja agradeço![/quote]

Coloque para rodar no console e informe qual a mensagem que está aparecendo?

o que significa rodar pela metade?

entao…eu acho q o problema sao as bibliotecas…nao sei pq mas eu acho q quando eu to gerando o jar ele nao exporta junto as bibliotecas q eu to usando no projeto…entao quando eu rodo o programa ele “para” na hora q tem o comando das bibliotecas…ai como deu erro ele nao “compila” mais…e para na metade do programa…

ok… seguinte:

quando vc usa bibliotecas (jars externos) e vai gerar um .jar para distribuir o seu projeto,
existe um arquivo chamado MANIFEST.MF, que deve estar na pasta META-INF na raiz do seu projeto.
nesse MANIFEST.MF vc deve declarar todos os jars que fazem parte do classpath, classe principal, dentre outras informações.

ex: vc declara um jar: libs/minhabiblioteca.jar

logo, seu jar principal deve estar num diretorio que contenha uma pasta chamada libs…
dentro da pasta libs deve estar o arquivo minhabiblioteca.jar

putsss…nao achei esse manifest…soh tem o classpath e o projetc…:S

eu achei o manifest…mas ele ta dentro do jar…clicando no + no jar do projeto ele tem a pasta meta inf com o manifest la…mas la soh tem informação de quem fez a biblioteca :S

acho que vc ta olhando no jar errado…
cada arquivo jar deve ter um MANIFEST… inclusive o seu…
e no seu, vc deve declarar os jars de terceiros que vai utilizar.

http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html

http://java.sun.com/docs/books/tutorial/deployment/jar/

os unicos arquivos manifest q eu achei foi das minhas bibliotecas…mas la soh tem informações daqela biblioteca…qual arquivo manifest vc diz pra eu allterar? e onde ele se encontra? pelo eclipse da pra v ele ou tem q i pelas pastas no explorer?

vc está usando eclipse???

sim

vc tem de criar uma pasta META-INF e o arquivo MANIFEST.MF também no seu projeto!!!

seguinte cara… eu gosto muito do eclipse, assim como do netbeans…
acho que se pudessemos mesclar os dois ficaria perfeito!!!

em termos de distribuição de projeto, o netbeans facilita mais a tarefa…

experimenta usar o netbeans pra gerar seu projeto… ele cria uma pasta “dist”
nesta pasta esta tudo o q é necessário…

daí vc da uma olhada no que ele criou e vc vai compreender como funciona…
não deixe de ver as documentações!

ai eh q ta…antes eu rodava normal…criava o jar e ele rodava em qualqer lugar…mas nao sei o q aconteceu q ele fikou assim rsrs…mas se eu tiver q criar como faço !? o q deve estar escrito no manifest?

exemplo de um manifest de uma aplicação antiga minha:

Manifest-Version: 1.0
Class-Path: 
  libs/asm.jar
  libs/brazilutils-0.1.1.jar
  libs/cglib-2.1.3.jar
  libs/commons-collections-2.1.1.jar
  libs/commons-logging-1.0.4.jar
  libs/dom4j-1.6.1.jar
  libs/ehcache-1.2.3.jar
  libs/ejb3-persistence.jar
  libs/firebirdsql-full.jar
  libs/hibernate-annotations.jar
  libs/hibernate-commons-annotations.jar
  libs/hibernate3.jar
  libs/jta.jar
  libs/xml-apis.jar
  libs/substance.jar
  libs/jasperreports-2.0.2.jar
Main-Class: main.Main

tambem tem outra saída…
va na pasta lib onde está instalado o JRE e cole todos os jars que vc usa.
daí vc não precisa declara-los no manifest

mas não é bom, pq cada em maquina que vc for rodar a aplicação, vai ter de copiar os jars novamente para lib

v se ta certo o q eu fiz…criei uma pasta lib e outra META-INF no projeto…na lib tem as jars…no META-INF eu criei o manifest e puis o codigo q vc passo…claro com as minhas alterações…mas ai eu rodei e deu o mesmo problema…v ae o codigo da manifest:

Manifest-Version: 1.0 Class-Path: lib/jl1.0.1.jar lib/mp3spi.1.9.4.jar Main-Class: Principal.Main

seguinte ao final de tudo, vc deverá ter a seguinte situação:

* pastaQualquer
     * seuJar.jar
     * lib
          * jl1.0.1.jar
          * mp3spi.1.9.4.jar

dentro do seuJar deve estar META-INF/MANIFEST.MF e todos os seus pacotes e classes

calma ai q eu to perdido…rsrs
eu extrai o jar q tava dando erro…e la eu encontrei o manifest…ai la nao ta falando de nenhuma biblioteca…maass…eu fui ver o manifest de um jar q eu tenho do mesmo projeto q roda em qualqer lugar…e o manifest ta igualzinho…tah assim:

[code]Manifest-Version: 1.0
Class-Path: .
Main-Class: Telas.Principal

[/code]