Packages

Pessoal!

Está correto esta estrutura de diretórios e os packages…:
(os pontos são apenas para alinahs o texto)

c:
|__ MyClass
…|__ MyAux
…|…|__ MyAux.java (package MyClass.MyAux; import MyClass.*; )
…|
…|__ MyClass.java (package MyClass;)

Opa Ze, tudo bom? Infelizmente, num ta certo naum…

Primeiro, siga os padroes que o pessoal usa na linguagem java, pacotes em letras minusculas, classes com primeira letra maiuscula e a cada palavra tambem letra maiscula.

Lembrando disso, vamos em frente:

diretorio base: c:/
diretorios dentro do base:
/meupacote
/meupacote/meupacoteinterno
classes:
c:/MinhaClasse.java --> MinhaClasse
c:/meupacote/MinhaClasseNoPacote.java --> meupacote.MinhaClasseNoPacote
c:/meupacote/meupacoteinterno/MinhaClasseNoPacoteInterno.java --> meupacote.meupacoteinterno.MinhaClasseNoPacoteInterno

Abracao

Gui

[quote=“Zé”]Pessoal!

Está correto esta estrutura de diretórios e os packages…:
(os pontos são apenas para alinahs o texto)

c:
|__ MyClass
…|__ MyAux
…|…|__ MyAux.java (package MyClass.MyAux; import MyClass.*; )
…|
…|__ MyClass.java (package MyClass;)[/quote]

Gui,

Olá e obrigado pela atenção.

Fiz conforme me indicaste. Porém tive problemas. Em cima do exemplo que você postou, vou reportar meu problema

Eis teu exemplo;

c:/meupacote/MinhaClasseNoPacote.java
(meupacote.MinhaClasseNoPacote)

c:/meupacote/meupacoteinterno/MinhaClasseNoPacoteInterno.java
(meupacote.meupacoteinterno.MinhaClasseNoPacoteInterno)

O problema que tive foi na classe “meupacote.meupacoteinterno.MinhaClasseNoPacoteInterno”, pois dentro dela fiz um “import meupacote.*;” mas mesmo assim não consigo enchergar “meupacote.MinhaClasseNoPacote”. Já coloquei no classpath os 2 diretórios mas mesmo assim não rolou.

T+!

Opa Ze, entao seu problema eh entender o funcionamento de pacotes.

Quando voce tem um pacote chamado /meupacote ou /meupacote/meupacoteinterno, o diretorio raiz das suas classes eh o /, entao eh esse diretorio / que deve ser o seu classpath…

Quando voce colocou o diretorio /meupacote e /meupacote/meupacoteinerno no classpath, o java tentou procurar a classe interna em: /meupacote/meupacote/meupacoteinterno/ClasseInterna (nao existe) e /meupacote/meupacoteinterno/meupacote/meupacoteinterno/ClasseInterna (nao existe)

isto eh, o compilador adiciona os diretorios do pacote para cada caminho do classpath, nao achando a classe. no momento que voce adicionar a raiz ele ira entrar no diretorio correto e achar a classe

Abracao

gui