Dúvidas Sobre Pacotes q Utilizam Composição

7 respostas
E

Olá pessoal,

Tenho uma pequena dúvida sobre como 'import’ar minhas classes. Estou construindo um objeto que usa, por composição, um objeto-membro de outra classe que eu já havia criado. O arquivo .class de meu primeiro objeto já está localizado normalmente em um pacote que eu criei. Quando vou compilar a segunda classe, indicando o mesmo caminho da primeira, o compilador não reconhece os objetos instanciados que tem como referencia a minha primeira classe. Não estou usando instruções import para nenhuma das duas classes. Desde já agradecido,

Pablo

7 Respostas

J

Oi

Pablo, veja se eu entedi bem… A primeira classe que vc compila está ficando em um pacote diferente da que vc quer compilar em segundo lugar? E esta segunda classe tme uma referência pra primeira? É isso?

T+

E

Pois então Paulo César,

Na verdade estou compilando a primeira classe normalmente com o comando javac -d c:\ PrimeiraClasse.java. Assim, o arquivo .class gerado está indo para o pacote que especifiquei em minha instrução package ( em meu caso estou usando br.gammon.bsi.pablo ). Só que quando vou compilar minha segunda classe que usa uma referência a um objeto da primeira, o compilador não identifica os objetos instanciados como PrimeiraClasse. Para compilar minha segunda classe estou usando o mesmo comando: javac -d c:\ SegundaClasse.java, tendo no código fonte de SegundaClasse.java, uma instrução package também para o mesmo pacote de PrimeiraClasse.java.

Obrigado!

E

“jeveaux”:
Oi

Pablo, veja se eu entedi bem… A primeira classe que vc compila está ficando em um pacote diferente da que vc quer compilar em segundo lugar? E esta segunda classe tme uma referência pra primeira? É isso?

T+

Obrigado por Responder!
Veja bem… :slight_smile:

J

Oi

Einsamkeit, hummm, tu ta me zuando é? ta com pressa?

Bom, tenta compilar a segunda classe assim:

javac -classpath br.gammon.bsi.pablo SegundaClasse.java

T+

E

Hey Man!!

Não to te zoando não. Desculpe-me pela mensagem anterior, pode ter parecido isso mesmo mas é que só queria ter certeza que você iria ver minha segunda mensagem… Nada de zoar cara, afinal, você está me quebrando um galho! :grin: ( a propósito, desculpe por ter repetido minha dúvida duas vezes no fórum… é que a conexão aqui é discada e parecia que não havia sido postada da primeira vez, :roll: )
Pois então, executei o comando conforme solicitado, e tive as mesmas mensagens de erro do compilador. Dá uma olhada:

C:\Progs\Novos>javac -classpath br.gammmon.bsi.pablo Empregado.java

Empregado.java:6: cannot resolve symbol

symbol  : class Data

location: class br.gammon.bsi.pablo.Empregado

private Data dataNascimento;

^

Empregado.java:7: cannot resolve symbol

symbol  : class Data

location: class br.gammon.bsi.pablo.Empregado

private Data dataContrato;

^

Empregado.java:14: cannot resolve symbol

symbol  : class Data

location: class br.gammon.bsi.pablo.Empregado

dataNascimento = new Data( diaN, mesN, anoN );

^

Empregado.java:15: cannot resolve symbol

symbol  : class Data

location: class br.gammon.bsi.pablo.Empregado

dataContrato = new Data( diaC, mesC, anoC );

^

4 errors

Data seria minha primeira classe e Empregado a segunda…

Muito obrigado e mais uma vez desculpe o transtorno!

Pablo

M

bem, tente fazer assim, jogue teus .java no teu C:, e compila eles com:

[color=“green”]javac -d . PrimeiraClasse.java SegundaClasse.java[/color]

não se esqueça do ponto “.” pepois do -d

E

Matheus,

Muito obrigado pela ajuda! Entendi agora que a minha segunda classe a ser compilada deve estar no mesmo diretório do pacote gerado pela primeira. Todo esse transtorno porque a segunda classe a ser compilada estava em um diretório diferente de onde estava sendo gerado o pacote que continha o arquivo .class da primeira. :wink:
Bom, mais uma vez, obrigado!

Pablo

Criado 4 de julho de 2004
Ultima resposta 9 de jul. de 2004
Respostas 7
Participantes 3