Java.lang.NoClassDefFoundError usando o Eclipse e Java 7

6 respostas
P

Olá a todos, sou novo na area de programacao e estou tendo um problema com uma classe da versao do Java 7.

Eu tenho essa classe:

// Inicio da classe
package Examples;

import java.nio.file.*;

public class DemoPath {

public static void main(String[] args){

	Path filePath = Paths.get("C:\\Users\\Paolo Carrara\\workspace\\Java Programming\\Chapter 13\\Examples\\file.txt");

	for(int x = 0; x < count; x++)
		System.out.println("Element " + x + " is " + filePath.getName(x));
}

}

// Fim da classe

Então quando eu tento compilar a classe ocorre o seguinte problema:

Exception in thread main java.lang.NoClassDefFoundError: java/nio/file/Paths

at Examples.DemoPath.main(DemoPath.java:12)

Caused by: java.lang.ClassNotFoundException: java.nio.file.Paths

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)

 1 more

Não vou dizer que eu ja tentei de tudo, pois se assim tivesse feito eu ja teria conseguido resolver o problema, entretanto eu ja tentei muitas coisas que eu achei na internet, mas nada adiantou, e caso vcs perguntem, ai vao algumas infos:

Java SDK instalado: Java ™ SE DevelopmentKit 7 Update 2 (64-bit)
Java JRE instalado: Java ™ Update 2 (64-bit)
Versao do eclipse: Eclipse 3.7.1 (Indigo)
Variáveis de ambiente:
Nome da Variavel: CLASSPATH
Valor da variável: .;%JAVA_HOME%;\lib\tools.jar

Nome da Variavel: JAVA_HOME
Valor da Variavel: C:\Program Files\Java\jdk1.7.0_02

Nome da Variavel: PATH
Valor da Variavel: C:\Program Files\Java\jdk1.7.0_02\bin

6 Respostas

davidbuzatto

Olá, seja bem vindo.
Primeiramente, dê uma lida aqui: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Quanto ao seu problema, primeiro, de onde está vindo a variável count?
Afinal, o que você está tentando fazer? Listar os arquivos de um diretório?

Resolva o que eu disse (count) e tente compilar novamente.
Se ainda houver problema, é pq seu Eclipse está configurado para usar outro JDK que não o 7.0.

[]'s

P

Oi David, obrigado por responder tão rapido, eu na verdade eu tentei omitir uma parte do codigo pra simplificar a leitura mas parece que eu so compliquei, então aqui vai o codigo todo:

//inicio
package Examples;

import java.nio.file.*;

public class DemoPath {

public static void main(String[] args){
	Path filePath = Paths.get("C:\\Users\\Paolo Carrara\\workspace\\Java Programming\\Chapter 13\\Examples\\file.txt");
	
	int count = filePath.getNameCount();
	
	System.out.println("Path is " + filePath.toString());
	System.out.println("File name is " + filePath.getFileName());
	System.out.println("There are " + count + " elements in the file path");
	
	for(int x = 0; x < count; x++)
		System.out.println("Element " + x + " is " + filePath.getName(x));
}

}

//Fim

Essa classe é na verdade um exercicio de exemplo de um livro que eu estou lendo em que o autor escreve esse codigo e simplismente compila, coisa que eu não estou conseguindo fazer, pois acho que meu eclipse, como vc ja disse, nao esta configurado corretamente com a versao 7 do java. Obrigado pela ajuda.

Hernaneprates

Cara, dá uma olhadinhas nas variáveis de ambiente e vê se tá tudo certinho.
Qualquer coisa tenta compilar com outra IDE.

P

\o/\o/\o/\o/\o/\o/!!!

Oi Hernane, sabe que eu não me veio na cabeça a ideia de tentar compilar em outra IDE, e agora que vc falou eu fiz isso e funcionou!!!
Compilei no DrJava, deu tudo certo… vc não vão acreditar, enquanto escrevia esse post eu consegui arrumar o problema!!!
O problema era o seguinte:
Na minha “Run Configurations” na aba “JRE” eu tinha uma opcao que diz “Project execution environment JavaSE-1.6(jre6)” e essa opcao estava marcada, entao eu vi que nao era isso e mudei para a opcao “Execution Environment” onde eu escolho a a versao da JRE pra rodar os meus projetos, eu escolhi entao a “JavaSE-1.7(jre7)” e deu tudo certo, mas e claro que nao foi so isso, eu tive que fazer varias modificoes antes dessa, mas essa foi a que me fez entrar aqui no forum pra perguntar o que estava de errado.

Gostaria de agradecer a todos que me ajudaram nesse meu pequeno problema, sei que esse vai ser apenas mais, mas sei tbm que para todos os que virão eu vou poder contar com a ajuda de todos aqui do forum, vlw!!

Minduin

Bom Dia,

Apenas para complementar o entendimento do erro apresentado, o compilador apesar de algumas vezes nos apresentar mensagens confusa no caso dessa exceção é bem explicito o erro e como se trata de uma classe da JDK basta na linha "Caused by: java.lang.ClassNotFoundException: java.nio.file.Paths " pegarmos a classe junto com o descritivo do pacote e jogar no google, nas primeiras opções sempre aparece o javadoc e nele há um descritivo que informa desde qual versão aquela classe existe “since: {versão}”, ai basta ver nas configurações de sua IDE qual o compilador ela está utilizando.

Java 7 atualmente é estritamente para estudo por enquanto, o mercado na sua maioria ainda se encontra no Java 5.

Abs.

Hernaneprates

pcarrara:
\o/\o/\o/\o/\o/\o/!!!

Oi Hernane, sabe que eu não me veio na cabeça a ideia de tentar compilar em outra IDE, e agora que vc falou eu fiz isso e funcionou!!!
Compilei no DrJava, deu tudo certo… vc não vão acreditar, enquanto escrevia esse post eu consegui arrumar o problema!!!
O problema era o seguinte:
Na minha “Run Configurations” na aba “JRE” eu tinha uma opcao que diz “Project execution environment JavaSE-1.6(jre6)” e essa opcao estava marcada, entao eu vi que nao era isso e mudei para a opcao “Execution Environment” onde eu escolho a a versao da JRE pra rodar os meus projetos, eu escolhi entao a “JavaSE-1.7(jre7)” e deu tudo certo, mas e claro que nao foi so isso, eu tive que fazer varias modificoes antes dessa, mas essa foi a que me fez entrar aqui no forum pra perguntar o que estava de errado.

Gostaria de agradecer a todos que me ajudaram nesse meu pequeno problema, sei que esse vai ser apenas mais, mas sei tbm que para todos os que virão eu vou poder contar com a ajuda de todos aqui do forum, vlw!!

Que bom que funcionou!

Criado 9 de fevereiro de 2012
Ultima resposta 10 de fev. de 2012
Respostas 6
Participantes 4