Erro - Exception in thread "main" java.lang.NoClassDefFoundError

8 respostas
peerless

Fiz uma aplicação no netbeans, e após construir o projeto, fui executa-lo:

java -jar … no console

ai apareceu:

Exception in thread “main” java.lang.NoClassDefFoundError: Main/build/classes/main/Main

ps: minha main.class está dentro desta pasta… e meu manifest esta configurado pra ela tbm!

o que pode ser? ?

obgd

8 Respostas

peerless

Se eu tirar o diretorio do Manifest.mf

o erro que dá é o seguinte:

<blockquote>Exception in thread “main” java.lang.UnsupportedClassVersionError: main/Main (Unsupported major.minor version 49.0)

at java.lang.ClassLoader.defineClass0(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:539)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)

at java.net.URLClassLoader.access$100(URLClassLoader.java:55)

at java.net.URLClassLoader$1.run(URLClassLoader.java:194)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:187)

at java.lang.ClassLoader.loadClass(ClassLoader.java:289)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)

at java.lang.ClassLoader.loadClass(ClassLoader.java:235)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

linux:~ #          </blockquote>
ViniGodoy

Posta aqui o seu manifest pra gente dar uma olhada.

peerless

dir: Main/manifest.mf

Conteudo:

Manifest-Version: 1.0
Main-Class: Main.build.classes.main.Main

Abraço!

R

Como pode ser visto, está dando erro na versão do Java.

Em qual JVM estes arquivos .class foram criados?
Qual a versão da JVM da sua máquina?

Instale o JDK6.0 que seu problema será resolvido.

peerless:
Se eu tirar o diretorio do Manifest.mf

o erro que dá é o seguinte:

<blockquote>Exception in thread “main” java.lang.UnsupportedClassVersionError: main/Main (Unsupported major.minor version 49.0)

at java.lang.ClassLoader.defineClass0(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:539)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)

at java.net.URLClassLoader.access$100(URLClassLoader.java:55)

at java.net.URLClassLoader$1.run(URLClassLoader.java:194)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:187)

at java.lang.ClassLoader.loadClass(ClassLoader.java:289)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)

at java.lang.ClassLoader.loadClass(ClassLoader.java:235)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

linux:~ #          </blockquote>                       </blockquote>
peerless

Este então está obsoleto ?

java version "1.4.2_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03) Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)

Obgd!

R

A versão 1.4.2 está obsoleta, na verdade muitas empresas ainda trabalham utilizando tal versão, porém duas novas versões já foram lançadas e o programa que você está tentando executar foi compilado em uma versão mais atual, sendo esta a causa do erro.

Sami_Koivu

Só complementando que uma classe com “major.minor version 49.0” requer no mínimo Java 1.5 para rodar.

Sami_Koivu

Para resolver esse problema, você tem duas opções.

a) Instale um JRE mais novo (1.5 ou 1.6)

b) Caso você não estiver usando as “novas” funcionalidades de java 1.5 (enums, generics, etc), você pode instruir seu netbeans compilar para java 1.4. Infelizmente eu quase não tenho usado netbeans, então não sei dizer exatamente como fazer isso.

Criado 19 de fevereiro de 2007
Ultima resposta 20 de fev. de 2007
Respostas 8
Participantes 4