Problemas com import/package

8 respostas
P

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:

8 Respostas

Ricardo_Siqueira

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.*;
P

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

Ricardo_Siqueira

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

Ricardo_Siqueira

bug

P

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

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

Valeu!!! :slight_smile:

Mantu

Vc tá usando qual programa pra programar em Java?

P

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:

Mantu

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:
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());
	}
}
Teste2.java:
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());
	}
}
Teste3.java:
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());
	}
}
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

Criado 19 de abril de 2006
Ultima resposta 20 de abr. de 2006
Respostas 8
Participantes 3