Javac diz que pacote não exite

7 respostas
E

Saudações

Instalei o jsdk 1.5.0_7 (update 7) tentando solucionar um problema que ocorria no update 6, mas não resolveu, vejam o problema:

import java.io.*; public class Teste { private String teste = " resultado"; public Teste(){ myutil.PrintTeste.mPrint(); } public static void main(String []args){ Teste teste = new Teste(); } }

dentro do diretório myutil:

package myutil; import java.io.*; public class PrintTeste{ public static void mPrint(){ System.out.print("teste "); } }

o que javac diz:
Teste.java:8: package myutil does not exist

myutil.PrintTeste.mPrint(); ^

As variáveis de ambiente CLASSPATH, JAVA_HOME E PATH estão todas configuradas adequadamente.
O que poderia estar causando este erro, se o diretório myutil existe…?Se eu colocar um import myutil.*; ele dirá : cannot find variable PrintTeste

Realmente preciso de ajuda nisso, pois nunca ocorreu isso antes, e dá o mesmo problema compilando servlets…terrível

Agradeço antecipadamente

7 Respostas

D

Caro eliselbert, vc esqueceu de chamar o package myutil na class que possui o main, da uma conferida tmb se vc realmente criou esse pacote, pois se ele não existir vai continuar dando o mesmo erro.
Espero ter ajudado.

import java.io.*; 
public class Teste {    
   private String teste = " resultado"; 
   public Teste(){ 
      myutil.PrintTeste.mPrint();       
   } 
   public static void main(String []args){ 
      Teste teste = new Teste(); 
   } 
}
E

Veja:

Já chequei se o diretório myutil, e ele existe.
quando invoco um método a partir nome do pacote, não é necessário o “import”, no caso, myutil.PrintTeste.mPrint();

E a mesma estrutura de diretórios, com o mesmo código, utilizando o netbeans, funciona tudo ok, sem erros ou advertências (warnings).

O problema persiste somente qdo tempo compilar em linha de comando.

Agradeço a ajuda.

B

Ola

Vc tem que colocar o pacote no seu classpath na hora de compilar a classe teste… supondo que seu codigo esteja no dir “src” e seus .class no “bin”, vc faz assim:

javac -d bin src/myutil/PrintTeste.java
javac -classpath bin -d bin src/Teste.java

Tenta ae… acho que e assim mesmo… tem muito tempo que nao compilo nada na mao…

S

Testei aqui essas mesmas classes, com e sem import, e funcionou certinho.

  • O Teste.java está um diretório acima do diretório myutil?
  • Você está tentando compilar (javac Teste.java) no diretório do Teste.java?
E

Caro Schuenemann

para compilar o TestePrint.java que está dentro do diretório myutil, eu digito no prompt:
javac myutil/TestePrint.java … e compila sem erros.

no diretório acima do myutil, onde se encontra o Teste.ponto java, eu digito:
javac Teste.java … digitando isso no mesmo diretório do arquivo, e dá o erro já descrito acima…

Qto a usar o javac -classpath Teste.java que o BrunoCarlo citou, nunca usei, e o que realmente é o -classpath(pois se eu digitar como ele mencionou, ele me retorna o help, e só…devo dar algum diretório onde está classpath? e qual diretório? como coloco o pacote no classpath?)

Agradeço

E

Problema resolvido:

javac -classpath . myutil/PrintTeste.java
javac -classpath . Teste.java

java -classpath . Teste

Funcionou tudo blz, agora só preciso entender o porque…rsrs

Agradeço a ajuda galera
Abraços

S

O ponto significa o diretório atual. Aqui deu certo porque o ponto já está no meu CLASSPATH.
Faça o mesmo aí :wink:

Criado 8 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 7
Participantes 4