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

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

Se eu tirar o diretorio do Manifest.mf

o erro que dá é o seguinte:

[quote]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:~ # [/quote]

Posta aqui o seu manifest pra gente dar uma olhada.

dir: Main/manifest.mf

Conteudo:

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

Abraço!

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.

[quote=peerless]Se eu tirar o diretorio do Manifest.mf

o erro que dá é o seguinte:

[quote]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:~ # [/quote] [/quote]

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!

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.

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

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.