2009-10-14 7 views
2

j'ai deux classes hello1 et Bonjour, et j'appelle constructeur de la classe Hello1 dans la classe Bonjour, mais quand j'essaie de compiler la classe Bonjour avec la commandeerreur de compilation lors de la compilation de classe dans une autre

javac Hello.java

Je reçois une erreur de compilation:

Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
^ 
Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
     ^

Mais lorsque je tente de compiler le compiler la classe avec la commande:

javac Hello.java Hello1.java

Cela fonctionne très bien, mais pourquoi dois-je utiliser cette commande à chaque fois pour compiler la classe? Pourquoi le compilateur ne peut pas utiliser le fichier .class Hello1 déjà compilé, de sorte que la prochaine fois que j'utilise la commande javac Hello.java.

+0

Avez-vous essayé de transmettre le classpath de la classe compilée Hello1 au compilateur? – Tom

+0

La ligne avec des erreurs semble très bizarre dans votre exemple: Hello1 est censé être une classe non? S'il vous plaît vérifier – fvu

+0

Merci! Maintenant, j'ai compris ce que je faisais. – Dusk

Répondre

1

Vous devez ajouter le répertoire courant à votre chemin de classe afin que le compilateur puisse le trouver. Par défaut, le classpath n'inclut pas le répertoire de travail en cours, donc les fichiers .class qui ont déjà été compilés ne seront pas vus par le compilateur. Pour ce faire, compilez comme ceci:

javac Hello.java -cp . 
+0

comme je le pensais! – Tom

1

Vous devez définir le classPath avec -cp.

+1

Affichage à partir d'un iPhone n'est pas le moyen le plus rapide de répondre à une question :) –

Questions connexes