[RESOLVIDO]Erro: cannot find symbol - Classe não encontrada - Exercicio Caelum

[quote=Daniy_SzAraujo]Sim Erick. Retirei o } a mais da classe Funcionario. Porém o erro continua.

Ao compilar eu uso javac TestaFuncionario.java e ao executar eu uso java -cp . TestaFuncionario

Uso assim pois sem isso (-cp . ) ele nao funciona.

Será algum problema com a jdk?[/quote]

Pessoal pesquisando um pouco mais sobre, encontrei o seguinte:

"Algo que frequentemente ocorre quando os desenvolvedores compilam e rodam a aplicação pela linha de comando, é se deparar com um erro de Classe não encontrada. Isto geralmente é resolvido quando adicionamos o diretório atual na busca. Desta forma, o javac ou java irá procurar em todas os subdiretórios da pasta atual. Para fazer isto, é necessário adicionar o ponto ?.? em um dos diretórios definidos após o comando -cp . "

Logo, tanto para compilar quanto para executar é preciso inserir -cp . TestaFuncionario, dessa forma:

[b]
javac -cp . TestaFuncionario.java

java -cp . TestaFuncionario[/b]

Assim foi possivel compilar e executar normalmente, sem erro. Portanto consegui resolver o meu problema \o//// ;D

Outra coisa que eu encontrei e que achei bastante interessante compartilhar com vocês, foi a questão de separar os arquivos .class dos arquivos .java, por questão de organização. Para isso é preciso criar uma pasta classes dentro da pasta onde está o seu arquivo .java. Sendo assim, ao compilar a classe deve-se usar a seguinte instrução:

javac -d classes Funcionario.java

O -d irá informar ao compilador para inserir o arquivo .class em um local determinado: dentro do diretório classes.

Já ao compilar a classe TestaFuncionario foi preciso inserir também o -cp ./classes, pois ele irá buscar nesse diretório (classes) a classe necessária para a execução do comando.

javac -d classes -cp ./classes TestaFuncionario.java

Para executar basta inserir o comando abaixo:

java -cp ./classes TesteFuncionario

Obrigada a todos que me ajudaram!!! :smiley: