Fórum Dúvida com import #506002

02/01/2015

0

Estou estudando sobre import do java para entender e fiquei com uma dúvida.

Suponhamos que eu tenha os seguintes diretorios e arquivos:

Diretorios:
/home/felipe/projeto/src/xyz/

Arquivos:

projeto/TestMain.java

package projeto;

import projeto.src.FileSystem;

class TesteMain {
 public static void main(String[] args) {
  FileSystem fileSystem = new FileSystem();
 }
}


src/FileSystem.java
package projeto.src;

class FileSystem {

}


src/xyz/TestMain2.java
package projeto.src.xyz;

import projeto.src.FileSystem;

class TesteMain2 {
 public static void main(String[] args) {
  FileSystem fileSystem = new FileSystem();
 }
}


Se eu rodar o TestMain.java da pasta projeto roda normal... Mas se eu tentar rodar a TestMain2.java que está num subdiretorio após o pacote que vou usar, da erro.

Esse exemplo é só para eu entender melhor os import's do java. Talvez eu nunca use um chamada de aplicação dentro de uma pasta de pacote de classes do sistema... mas vamos supor que eu queira.

Por causa do TestMain2.java estar dentro de um subpacote do qual eu desejo chamar (srx.FileSystem), ele da erro.

Eu tentei compilar alterando o classpath, mas mesmo assim nao consegui. Usei
cd /home/felipe/projeto/src/xyz/
javac -cp /home/felipe/projeto/ TestMain2.java
java -cp /home/felipe/projeto/ TestMain2
Felipe Massa

Felipe Massa

Responder

Post mais votado

05/01/2015

Ajudou um pouco para eu entender melhor. Agradeço.

E quanto aos arquivos de testes das classes, acredito que não deve ficar no diretório src, esses arquivos devem ficar aonde?


Por exemplo a classe TestMain?


Geralmente colocamos em um diretório chamado "test" no mesmo nível hierárquico do "src". Ex: /projeto001/test/TestMain.java

Ronaldo Lanhellas

Ronaldo Lanhellas
Responder

Gostei + 1

Mais Posts

02/01/2015

Ronaldo Lanhellas

Bom, seu conceito de imports está errado. Vamos lá :

O seu diretório: Diretorios: "/home/felipe/projeto/src/xyz/" significa que o nome do pacote é "xyz" e não "projeto.src.xyz", no caso ficaria assim:

 
import FileSystem;
 
class TesteMain {
 public static void main(String[] args) {
  FileSystem fileSystem = new FileSystem();
 }
}


 
class FileSystem {
 
}


package xyz;
 
import FileSystem;
 
class TesteMain2 {
 public static void main(String[] args) {
  FileSystem fileSystem = new FileSystem();
 }
}


Lembre-se de que "src" é apenas o diretório onde ficam os fontes/sourcers.
Responder

Gostei + 0

03/01/2015

Felipe Massa

Ajudou um pouco para eu entender melhor. Agradeço.

E quanto aos arquivos de testes das classes, acredito que não deve ficar no diretório src, esses arquivos devem ficar aonde?


Por exemplo a classe TestMain?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar