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.
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
bobmoe
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:
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
Popeye12345
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!