Erro ao executar um byte-code [Resolvido]

15 respostas
Joercio

Olá!

Sou iniciante (bem iniciante mesmo) na linguagem Java. Estudo por conta própria e logo de cara encontrei um problema que tem me tirado várias noites de sono. Instalei o Java SE Development Kit (a versão mais nova), e pelo prompt de comando consegui sem grandes problemas compilar o clássico “Helo World!”, mas ao chamar o java para executá-lo o prompt mostra o seuinte erro:

Exception in thread “main” java.lang.NoClassDefFoundeError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
at: java.net.URLClassLoader$1.rum
at: java.net.URLClassLoader$1.rum
at: java.security.AccessController.do Priveliged
at: java.net.URLClassLoader.findClass
at: java.lang.ClassLoader.LoadClass
at: sun.misc.Launcher$AppClassLoader.LoadClass
at: java.lang.ClassLoader.LoadClass
at: java.lang.ClassLoader.LoadClassInternal
Error: Could not find the main class HelloWorld.
Error: A JNI error as ocurred, please check your installation and try again

Pelo que eu entendi ele não consegue encontrar a classe principal.
Alguém aí pode me ajudar :?:

Obs: Eu chequei e não esqueci de diferenciar letras maiúsculas e minúsculas.

Obrigado desde já!

15 Respostas

T

Puxa, você teve uma paciência absurda para copiar a mensagem de erro (percebi isso porque há uns erros de ortografia como “rum” em vez de “run” ou “do Priveliged” em vez de “doPrivileged”. ) Você provavelmente executou o comando

java -cp . HelloWorld

e ele disse essa mensagem esquisita de erro. Por acaso você tem um java.exe em c:\windows\system32? Em vez de “java -cp . HelloWorld”, use “c:\windows\system32\java” -cp . HelloWorld e veja o que ocorre dessa vez.

Joercio

Bem, eu não usei o [b] java-cp .HelloWorld[/b], somente o java HelloWorld. Mas eu executei esse comando que você mostrou e ele deu exatamente o mesmo erro.

Eu dei uma olhada e tenho sim um java.exe na pasta system32, também tem um outro chamado javaw.

squall926

Ola!
Primeiro… você consegue compilar seu programa HelloWord usando javac no dos?
Segundo, me parece que o java não esta encontrando o HelloWord.class… certifique-se esta na pasta do programa em questão(HelloWord)
T+

B

provavelmente sua classe deve estar dentro de algum pacote, então é necessário especifica-lo caso o pacote exista. Olhe se existe alguma declaração package na sua classe.

Joercio

squall926

Sim, consigo compilá-lo pelo DOS sem problemas (pelo menos não mostrou nenhuma mensagem de erro até aí). Mas ele não criou o HelloWorld.class na pasta, na primeira vez ele criou o programa na pasta C:\Documents and Settings\Proprietário, mas nunca consegui executá-lo com o comando java. Agora quando compilo ele nem cria o HelloWorld.class, mas estranhamente ele não indica nenhum erro na compilação. Eu procurei em outras pastas e não o achei.

bobmoe

Acho que não tem nenhum package, mas não entendo muita coisa. O programa é o básico do básico:

class HelloWorld {

public static void main (String args[]) {

System.out.println(Hello World!);

}

}

Cara, eu tô levando uma surra :frowning:

NotleRow

Olá meu amigo!

Veja se o seu path não está configurado errado.
Consulte esse link:
http://www.guj.com.br/java.tutorial.artigo.12.1.guj

Caso esteja configurado certo. Tente declarar sua classe HelloWorld como public.

Até mais!

Joercio

O Windows começou a dar pau :?

Vou formatar o HD. Talvez as coisas melhorem.
Amanhã eu volto.

Joercio

Formatei o HD, mas ainda indica o mesmo erro.

Configurei o PATH. O jdk foi instalado na pasta C:\Arquivos de programas\Java\jdk1.7.0, mas ainda não funciona.

Tem a pasta C:\WINDOWS\java\classes, sera que devo colocar no valor de JAVA_HOME?

Joercio

Consegui compilar de uma outra forma que vi no link:

http://www.javafree.org/javabb/viewtopic.jbb?t=860067

Mas ainda não consigo executá-lo.

Joercio

Por favor, tentem me ajudar só mais uma vez! Já fiz várias pesquisas e não consegui resolver nada.

ivo_costa

Talvez funcione assim digamos que o .class esteja na pasta java:

java -cp "C:\java" HelloWorld
Joercio

Eu tentei, mas só apareceu aquela mensagem indicando como usar o comando.

P

Ola Joercio,

Eu acho que eu sei o que vc esta errando. Uma classe uqe nao contenha um metodo public ao menos nao pode ser executada. pelo codigo que vc mandou vc nao esta declarando omodificador de acesso dela como public. Coloque : public class HelloWorld manda compilar novamente e tenta executar.

valeu.

Joercio

Eu coloquei o public, mas não tava rodando mesmo assim. Mas acabei de conseguir agora, eu estava errando também na hora de indicar o diretório do .class. Mas valeu pela ajuda!

Muito, mas muito OBRIGADO a todos!!! Valeu!!! :smiley:

ivo_costa

Então escreve [Resolvido] no título do tópico.

Criado 14 de julho de 2008
Ultima resposta 18 de jul. de 2008
Respostas 15
Participantes 7