Problemas com import/package

Oi Pessoal,

Eu já achei bastante coisa sobre esse assunto aqui no forum, mas estou com uma dúvida que eu realmente não achei aqui…

É o seguinte, eu tenho um arquivo teste1.java na minha pasta1. Para referenciar uma classe que está em um arquivo teste2.java, devo gravar este arquivo no seguinte caminho: …/pasta1/pasta2/teste2.java, certo? E os arquivos ficam assim:

teste1:

import pasta2.*; ...

teste2:

package pasta2; ...

Até aí, td bem!
Achei isso aqui no fórum e deu certinho!
O meu problema é que o teste2.java referencia uma classe que está no arquivo teste3.java! Onde eu gravo este terceiro arquivo??? Como ficam os imports e packages dos arquivos anteriores???
Não consigo fazer essa parada dar certo! :frowning:

O arquivo você grava onde quiser…não existe uma regra pra isso. Existem sim algumas recomendações da Sun mas acho que não é isso que você tá buscando né.

Se quiser gravar o teste3.java na pasta1 ou na pasta2 tanto faz.
Pra facilitar eu colocaria tudo na pasta 1.
mas se quiser(como tá parecendo) criar uma pasta 3 dentro da pasta 2 e lá dentro colocar seu teste3.java vc referenciaria ele no teste.java assim:

import pasta2.pasta3.*;

e se fosse referenciar a partir do teste2.java ficaria assim:

import pasta3.*;

Se tudo estiver na pasta 1, como que eu faço as referências??? :slight_smile:

vc não precisa referenciar!!! :smiley: :smiley: :smiley:
não é lindo?

bug

Nossa! Nao creio!!! Que lerda que eu sou!!!

70% dos meus problemas estão resolvidos agora!!!

Valeu!!! :slight_smile:

Vc tá usando qual programa pra programar em Java?

Então, normalmente eu uso o Eclipse… ele ja arruma todas essas paradas de import e package automatico, né?
Mas dessa vez eu quis usar o editor mais simples possivel pra aprender “o caminho das pedras”… :slight_smile:

Porque assim, eu tava tentando fazer no mais simples dos editores: o bom e velho notepad :lol: . Fiz o teu exemplo da seguinte maneira:

Teste1.java:

[code]
package teste1;

import teste2.*;

public class Teste1{
public static String go(){
return "Classe " + Teste1.class.getName() + " que chama " + Teste2.go();
}

public static void main(String a[]){
	System.out.println(go());
}

}[/code]
Teste2.java:

[code]
package teste2;

import teste3.*;

public class Teste2{
public static String go(){
return "Classe " + Teste2.class.getName() + " que chama " + Teste3.go();
}

public static void main(String a[]){
	System.out.println(go());
}

}[/code]
Teste3.java:

[code]
package teste3;

public class Teste3{
public static String go(){
return “Classe " + Teste3.class.getName() + " que não chama ninguém.”;
}

public static void main(String a[]){
	System.out.println(go());
}

}[/code]
Pra compilar esse trem com o javac, não pude fazer somente (Dentro da pasta teste1):

D:\Testes\GUJ\teste1>javac Teste1.java

Tive que fazer:

D:\Testes\GUJ\teste1>javac -classpath D:\Testes\GUJ Teste1.java

Daí ele conseguiu compilar as classes.
Na hora de exucutar, fiz:

D:\Testes\GUJ>java teste1.Teste1

Resumindo, talvez vc precise verificar essas peculiaridades de classpath