1
resposta

Não estou conseguindo compilar

Criei a seguinte estrutura de pastas c:\forma e dentro criei c:\forma\outra

criei as classes c:\forma\Forma.java e c:\forma\Quadrado.java (que estende Forma) depois eu criei a classe c:\forma\outra\Triangulo.java que também estende do Forma

dentro da pasta C:\forma executo os comandos javac Forma.java --> ok compila normal javac Quadrado.java --> erro de compilação Quadrado.java:3: error: cannot find symbol class Quadrado extends Forma { ^ symbol: class Forma 1 error ambos estão na mesma pasta.

javac *.java --> ok compila normal

entro na pasta c:\forma\outra javac Triangulo.java --> não compila Triangulo.java:3: error: cannot find symbol import forma.Forma; ^ symbol: class Forma location: package forma Triangulo.java:4: error: cannot find symbol class Triangulo extends Forma { ^ symbol: class Forma 2 errors

qual o problema ? não estou entendendo esse lance de packages e pastas

1 resposta

Boa tarde Mark,

Eu não vi o código então vou tentar no que eu acredito que aconteceu, peço desculpa se não conseguir, mas se for possível colocar o código completo fica mais fácil, pois acredito que você declarou os pacotes. Então vamos lá:

Quando você tenta compilar o Forma.java não dá erro pois ele não depende de nenhuma outra classe.

Já o Quadrado e o Triangulo, eles extends Forma, e o compilador vai procurar a pasta(pacote) da classe Forma informado, e não vai encontrar pois ele já está dentro da pasta. Tende rodar o comando de compilar fora da pasta forma, ou seja, C:\ no seu caso.

Segue o link de onde encontrei a explicação do problema: https://stackoverflow.com/questions/30527632/how-does-javac-automatically-compile-dependencies-of-a-class

Se não for isso, por gentileza postar os códigos para que eu possa tentar ajudar. Abraço.