Erro no básico "Hello World!"

8 respostas
joaohs

Boa tarde pessoal!

Seguinte:
Estou tendo um problema na execução de um simples “Hello World”. Acontece que, há muito tempo não brinco com o nosso querido Java, pois estou trabalhando com .NET, e acabei deixando ele de lado.
Porém, estou voltando aos estudos, mais logo de cara me deparei com um erro!

Estou tentando executar o código abaixo em um bloco de notas:

public class Teste
{
	public static void main (String[] args)
	{
		System.out.println("Hello World!");
	}
}

E ele me dá o seguinte erro, no prompt do WinXP:

Exception in thread "main" java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException: Teste
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Na
        at java.net.URLClassLoader.findClass(Unknown Sour
        at java.lang.ClassLoader.loadClass(Unknown Source
        at sun.misc.Launcher$AppClassLoader.loadClass(Unk
        at java.lang.ClassLoader.loadClass(Unknown Source
        at java.lang.ClassLoader.loadClassInternal(Unknow
Could not find the main class: Teste.  Program will exit.

Eu acredito que seja algum erro de instalação, mais não tenho certeza.
Vocês poderiam me dar uma força?

[ ]'s

8 Respostas

victorwss

Você tem que chamar a máquina virtual a partir da pasta certa.

Por exemplo, vamos supor que você salvou o Teste.class em “c:\joaohs\helloword”.

Você tem que executar a JVM a partir daquela pasta.
Uma alternativa seria aprender configurar classpaths (que é muito mais difícil e é um saco).

marcosharbs

tais tentando compila pelo prompt?
vc declarou as variaveis de ambiente?
elas tem que tar apontadas pra certos diretorios tb
axo melhor vc baixar uma IDE
o eclipse é mto bom

vlw

cris.t

configuração das variáveis de ambiente

JAVA_HOME = C:\Arquivos de programas\Java\jdk1.6.0_04 (mude para a versão do JDK que tiver instalado)

PATH = Ao final dela adicione um ;%JAVA_HOME%\bin

CLASSPATH = Caminho para a pasta que contem as suas bibliotecas. Se tiver mais de um caminho, separe por ;

peczenyj

tente essa sequencia:

cd c:\diretorio\aonde\esta\o\fonte
javac Teste.java
java -cp . Teste

se funcionar, tente

java Teste

se der o mesmo erro, é classpath, das duas, uma: ou vc adiciona o diretorio que possui essa classe ou adiciona o diretorio corrente “.” no classpath.

A diferença é que, se o diretorio\aonde\esta\o\fonte for adicionado, de qq diretorio vc pode invocar

java Teste

entretanto se vc adicionar o corrente, vc precisa estar no diretorio que contem a classe.

confuso? http://www.guj.com.br/artigos.jsp

Agora basta praticar!

joaohs

Bom pessoal!

O problema realmente era com as variáveis de ambiente.

Como o nosso amigo disse, executei com a instrução:

java -cp . Teste

Ele exeecutou corretamente!
Porém, a instrução “java Teste” me retorna o mesmo erro.

As minhas variáveis de ambiente estão configuradas desta maneira:

CLASSPATH = .;%JAVA_HOME%;
JAVA_HOME = C:\Arquivos de programas\Java\jdk1.6.0_10\
PATH = C:\Arquivos de programas\Java\jdk1.6.0_10\bin

Como posso configurá-las de uma maneira que eu possa executar o meu programa em qualquer local?

Agradeço pelas respostas :smiley:

joaohs

Ninguém pode me ajudar com essa configuração?

danilopelegrino

Isso aqui pode te ajudar :slight_smile:

http://www.guj.com.br/java.tutorial.artigo.108.1.guj

abraçoooo fuizzzz

joaohs

Valeu Danilo!

Sucesso por aqui!

[ ]'s

Criado 7 de novembro de 2008
Ultima resposta 10 de nov. de 2008
Respostas 8
Participantes 6