Porque q uma aplicacao funciona no eclipse e nao funciona qdo eu gero o .jar (atraves do fatjar) e rodo no prompt?
alguem sabe q mistério é esse?
FatJar
11 Respostas
olah?
mas simplesmente naum roda ou gera alguma Exception?
abrax…
Exception in thread “main” java.lang.ClassFormatError: org/apache/xerces/parsers
/AbstractDOMParser (Illegal constant pool index)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(
Unknown Source)
at br.com.imagetec.xml.XMLDomHelper.load(XMLDomHelper.java:74)
at br.com.imagetec.xml.XMLDomHelper.load(XMLDomHelper.java:47)
at br.com.imagetec.ws.client.CommonServiceClient.sendMessage(CommonServi
ceClient.java:67)
at br.com.imagetec.function.library.WebServicesFunctions.call(WebService
sFunctions.java:53)
at br.com.imagetec.ci.integracao.IntegracaoProvision.main(IntegracaoProv
ision.java:37)
Parece que o FatJar não está conseguindo fazer o … jar gordo…
Olha o ClassFormatError:
vc sabe utilizar o fat jar??? acredito q tbm seja na hora de gerar o .jar
e ai…
vi um topico semelhante e um das possiveis soluçoes apresentadas foram:
- Classpath - Veja se todos os JAR necessários estão em seu classpath.
tbm axu q ele pod naum estar gerando o jar com td q vc precisa…
sim todos os jars estao no class path, peguei as libs do pacote axis2.zip
Ja utilizei o FatJar varias vezes e nunca vi isso!
Tenta gerar o JAR sem essa biblioteca que tem o org/apache/xerces/parsers/AbstractDOMParser,
daí vc passa essa classpath pela linha de comando:
java -cp CLASSPATH -jar suaApp.jar
Identifique se você não precisa de algum jar extra, executando dentro do eclipse a aplicação com a flag -verbose:class.
Depois, rode fora e compare os resultados. A chance de algo não ter sido incluído é, afinal de contas, muito alta.
[Loaded javax.xml.stream.XMLEventReader]
[Loaded com.bea.xml.stream.ConfigurationContextBase]
[Loaded java.lang.ClassFormatError from C:\Arquivos de programas\Java\j2re1.4.2_13\lib\rt.jar]
[Loaded sun.misc.ClassFileTransformer from C:\Arquivos de programas\Java\j2re1.4.2_13\lib\rt.jar]
Exception in thread “main” java.lang.ClassFormatError: com/bea/xml/stream/MXParser (Illegal UTF8
[Loaded java.lang.StackTraceElement from C:\Arquivos de programas\Java\j2re1.4.2_13\lib\rt.jar]
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory.java:260)
at br.com.imagetec.ws.client.CommonServiceClient.mountContext(CommonServiceClient.java:10
at br.com.imagetec.ws.client.CommonServiceClient.sendMessage(CommonServiceClient.java:7
at br.com.imagetec.function.library.WebServicesFunctions.call(WebServicesFunctions.java:5
at br.com.imagetec.ci.integracao.IntegracaoProvision.main(IntegracaoProvision.java:37)
[Loaded java.lang.Shutdown from C:\Arquivos de programas\Java\j2re1.4.2_13\lib\rt.jar]
[Loaded java.lang.Shutdown$Lock from C:\Arquivos de programas\Java\j2re1.4.2_13\lib\rt.jar]
Loaded javax.xml.stream.XMLEventReader]
[Loaded com.bea.xml.stream.ConfigurationContextBase]
[Loaded javax.xml.stream.Location]
[Loaded com.bea.xml.stream.MXParser]
[Loaded java.lang.IllegalStateException from C:\j2sdk1.4.2_13\jre\lib\rt.jar]
[Loaded java.io.EOFException from C:\j2sdk1.4.2_13\jre\lib\rt.jar]
[Loaded java.lang.IndexOutOfBoundsException from C:\j2sdk1.4.2_13\jre\lib\rt.jar]
[Loaded java.lang.ArrayIndexOutOfBoundsException from C:\j2sdk1.4.2_13\jre\lib\rt.jar]
[Loaded javax.xml.namespace.NamespaceContext]
da pra concluir algo???
Claro que dá: Você tá rodando código 1.5 em uma VM 1.4!
resolvi… o problema todo era o .jar gerado pelo fatjar