Não consigo Instanciar Objeto simplesmente

25 respostas
rafaelrwrc

Olá pessoal, por favor me ajudem, sou novo e naum estou entendendo o pq deste erro maldito !!! O q eu aprendi de errado ? Eu só quero instanciar um Objeto de uma classe e naum estou conseguindo olhem o erro q está dando:

Cannot Resolv Symbol: class BarraHorizontal
Location: class TestaBarraHorizontal BarraHorizontal b1

As duas classes estão no mesmo pacote óbvio e instanciei assim: BarraHorizontal teste = new BarraHorizontal();

Fiz algo de errado ?

Valeu pela força ![/b]

25 Respostas

danieldestro

“Cannot Resolv Symbol” indica que, ou o nome BarraHorizontal está errado ou não foi importado.

rafaelrwrc

Grande Daniel, obrigado por me responder, já tentei de tudo, “nem td né ?!! se está dando errado !! hehehe”, mas olha só os mues simplérrimos códigos q por incrívem q pareça agora estão compilando, mas qdo vou rodar o TestaBarraHorizontal dá erro de RunTime, se der pra vc testar e ver o q ocorre…


package teste;

public class BarraHorizontal{

//Declaração de variáveis

public int numPontos;

//Construtor padrão executado automaticamente

//Métodos públicos
public void geraBarra()
{
System.out.print(numPontos + " pontos: " );
for (int i = 0; i <= numPontos; i++){
System.out.print(".");
}
System.out.println();
}
}

package teste;

public class TestaBarraHorizontal{

public static void main(String args[])

{

//Declaração do ponteiro b1

BarraHorizontal b1;
//criação do objeto e atribuição da
  //referencia a "b1"
  b1 = new BarraHorizontal();

  //Uso da referência "b1" para
  //operar com o objeto
  b1.numPontos = 20; //Encapsulamento?!!! hahaha
  b1.geraBarra();

  System.exit(0);

}
}


Isto naum deveria funcionar mesmo naum especificando o pacote ??!! Pois estaum no mesmo diretório e BarraHorizontal é public !!!

Obrigado por ajudar !

danieldestro

Coloque seus código dentro das tags , por favor. Eles ficam mais organizados. (Tem um botão “code” pra te ajudar quando você escreve).

Bom, qual erro está dando?
O código parece OK!

rafaelrwrc

Foi mau em relação ao código eu naum sabia…

É pq eu estou no estágio e aqui naum tenho ambiente Java, só instalei o jsdk, olha só esta imagem cara ! Horripilante… desta forma q está descrita acima compila como já havia dito, mas na hora de rodar :

o meu classpath tá assim:

PATH=%PATH%;C:Arquivos de programasMts;C:j2sdk1.4.2in;

set classpath=%classpath%;C:j2sdk1.4.2lib	ools.jar;C:j2sdk1.4.2libservlet.jar;

set catalina_home=c:Arquivos de programasApache GroupTomcat 4.1

Obrigado ![/code][/list]

aborges

Supondo q suas classes estejam no caminho: home/java/teste

Na pasta home/java faca:

javac -classpath . ./teste/BarraHorizontal.java javac -classpath . ./teste/TestaBarraHorizontal.java

rafaelrwrc

javac -classpath . ./teste/BarraHorizontal.java javac -classpath . ./teste/TestaBarraHorizontal.java

aborges, assim: javac -classpath c: esteTestaBarraHorizontal.java ??!!

Daniel:
O img naum serve p/ anezar imagens ?!!
É q eu estou compilando no DOS e gostaria de capturar a tela de erro p/ vc ver !

danieldestro

Use a tag IMG do HTML mesmo.

rafaelrwrc

não estou conseguindo postar uma imagem !!!

em html, mas naum vai !

danieldestro

sua imagem está em algum servidor web ???

rafaelrwrc

Daniel, a imagem está no meu HD, ela tem q estar aonde ?

danieldestro

Sua imagem nunca vai aparecer se vc não disponibilizar ela na net, não é!

Este forum não faz upload de arquivos.

rafaelrwrc

Realmente naum sei o deve estar acontecendo aqui em meu PC do Estágio, pois o código naum pode ser mais mais simples do q isto:

public class Empregado {
  public String nome ;
  public String matricula;

  public String toString() {
    return ("Empregado " + nome + " - " + matricula + "/02");
  }
}
public class TestaEmpregado {

   public static void main (String args[]) {
      Empregado homem, mulher;

      homem = new Empregado();
      mulher = new Empregado();

      homem.nome = "Luís Inácio";
      homem.matricula = "1292";
      mulher.nome = "Marta";
      mulher.matricula = "3872";

      System.out.println(homem);
      System.out.println(mulher);
      
   }
}

Na minha casa rodou perfeitamente, nau sei o q há de errado mesmo o meu autoexec(win98) está assim:(em parte)

PATH=%PATH%;"C:Arquivos de programasMts";C:j2sdk1.4.2in; set classpath=%classpath%;C:j2sdk1.4.2lib ools.jar;C:j2sdk1.4.2libservlet.jar; set catalina_home=c:Arquivos de programasApache GroupTomcat 4.1

Será q tem algo de errado ?
Obrigado !

danieldestro

Tenta só isso no Autoexec.bat:

SET PATH=%PATH%;"C:\Arquivos de programas\Mts";C:\j2sdk1.4.2\bin set classpath=%classpath%;C:\j2sdk1.4.2\lib\servlet.jar set catalina_home=c:\Arquivos de programas\Apache Group\Tomcat 4.1

rafaelrwrc

Daniel, se vc digitar os códigos acima de Empregado e TesteEmpregado na sua máquina eles tmb funcionam numa boa ??!!!

Testa pra mim por favor, modifiquei o autoexec e nada !

É angustiante esta situação e o tempo q estou perdendo com uma coisa taum simples, será q re-instalando o jsdk, alteraria algo ??!!!

SET PATH=%PATH%;"C:Arquivos de programasMts";C:j2sdk1.4.2in
set classpath=%classpath%;C:j2sdk1.4.2libservlet.jar
set catalina_home=c:Arquivos de programasApache GroupTomcat 4.1
danieldestro

Funcionou sem problemas!

Você tem problemas ao compilar ou ao rodar?

rafaelrwrc

Aí Daniel, nestes códigos q postei de Empregado eu naum coloquei
“package teste;” neles, certo ? Ok se compilo sem o “package teste;”, o Java diz q naum consegue resolver o símbolo “BarraHorizontal” e incluo o “package teste;” ele compila e da primeira vez fiquei feliz ao extremo, pois pensei q fosse funcionar, pura ingenuidade, hehehe

Bom desta vez ele deu o seguinte erro famoso: ao digitar “java TesteBarraHorizontal” depois de compilar:

Exception in thread “main” java.lang.NoClassDefFounError TesteBarraHorizontal (wrongname: teste/TestaBarraHorizontal)
at java.lang.ClassLoader……etc, etc, etc….

Esse erro naum é conhecido ??!!!

danieldestro

Imagine que você tem as classes A e B, ambas do pacote teste.
Aí você tem a seguinte estrutura de diretórios:

seu projeto | |--- teste |--- A.java |--- B.java

Dentro do diretório do seu projeto, você compila assim:

javac teste/A.java teste/B.java

E para rodar:

java teste.A

Sacou?

rafaelrwrc

Mas eu naum posso estar dentro de teste e digitar javac A.java
javac B.java ???

aborges

“rafaelrwrc”:
Mas eu naum posso estar dentro de teste e digitar javac A.java
javac B.java ???

Meu post de sexta-feira resolveria seu problema …

danieldestro

“rafaelrwrc”:
Mas eu naum posso estar dentro de teste e digitar javac A.java
javac B.java ???

Não, não pode!
Você DEVE seguir e respeitar as packages.

rafaelrwrc

“aborges”:

Na pasta home/java faca:

javac -classpath . ./teste/BarraHorizontal.java javac -classpath . ./teste/TestaBarraHorizontal.java

:oops: Pessoal, primeiro de tudo quero agradecer a vcs pela atenção dada a um iniciante com um problema simples para muitos e irritante para ele, pois não consegue caminhar além do q gostaria…e faz os outros perderem seu tempo !!!

ABORGES, eu naum entendi o q significa -classpath.

Vou lhe explicar o q ocorre aqui:
Minha máquina é um win98 com 2 partições, meu autoexec já foi postado, e qdo digito no d: -> Java, para saber se está funcionando, mostra as opções, significa q está funcionando né ?

Pois entaum minhas classes estão em: d: este
Está certo digitar em d::
javac testeEmpregado.Java
javac testeTestaEmpregado.Java
Java testeTestaEmpregado, deveria fincionar ?? ou está incorreto ?
Outra coisa, naum conheço as regras q vcs citaram, pois em casa digito dentro de teste:
javac TestaEmpregado.Java e já tenho compilado Empregado.Java e TestaEmpregado.Java, pois há uma dependência, certo ? O q eu estou infringindo em Java ? Eu realmente desconheço.
Obrigado.

danieldestro

Para compilar classe de uma package vc usa o separador de diretórios:

javac pack/Classe.java
ou
javac pack2\OutraClasse.java

Para executar a aplicação vc usa o ponto separador de pacotes.

java pack.Classe
java pack2.OutraClasse

Ficou claro? :smiley:

rafaelrwrc

Daniel, eu tenho uma classe aki no meu PC em: D: esteAloha.java

Bom, se eu digito no d::

javac testeAloha.java - compila numa boa
mas se eu digito no d::

java teste.Aloha - dá o mesmo erro de java.lan.NoClassDefFoundError, mais um montão de coisas…

Mas se eu digito:

no d: este

javac Aloha.java e depois no mesmo d: este - java Aloha - Funciona !

O será q ocorre ?
Obrigado.

danieldestro

Você esqueceu de colocar “package teste;” no início da sua classe.

rafaelrwrc

Valeu Daniel !!!

Obrigado !

Criado 24 de setembro de 2004
Ultima resposta 27 de set. de 2004
Respostas 25
Participantes 3