2010-06-22 12 views
0

Je ces fichiers:pourquoi cela ne compile pas?

c:\MY_SOURCES\AClient.java 
c:\MY_SOURCES\Pluto.java 
c:\MY_SOURCES\com\Classes\Pluto.class 

Dans AClient.java j'ai

import com.Classes.*; 
Pluto p = new Pluto(); 

Lorsque je compile le fichier avec:

javac -classpath . AClient.java 

le compilateur me dire qu'il ne peut pas accéder à Pluto comme mauvais fichier source Pluto.java ... mais si je déplace Pluto.java loin de c:\MY_SOURCES il compile.

+1

S'il vous plaît fixer votre message. Dans un endroit, vous spécifiez 'MY_JAVA_SOURCES' dans un autre' MY_SOURCES'. Aussi je n'étais pas capable de comprendre où chaque fichier est. Veuillez écrire un chemin d'accès complet au fichier ** each ** et à vos options de compilation. – bezmax

+0

Ok ... J'ai modifié la question mieux – xdevel2000

Répondre

2

Votre dossier source doit refléter la structure de votre paquet. Si ça ne javac devient confus. Idéalement, votre dossier .class compilé devrait être dans une racine différente de votre dossier source.

Alors

c:\MY_SOURCES\AClient.java (assuming in the default package) 
c:\MY_SOURCES\com\Classes\Pluto.java 

c:\MY_COMPILED\com\Classes\Pluto.class 

javac -classpath=c:\MY_COMPILED -d 
c:\MY_COMPILED\ c:\MY_SOURCES\AClient.java 
1

Tout en réitérant ...

C:\MY_SOURCES\AClient.java 
C:\MY_SOURCES\com\Classes\Pluto.java 

En supposant AClient.java contient ...

import com.Classes.*; 

public class AClient { 
    Pluto p = new Pluto(); 
} 

Cette compilation ne fonctionne

C:\MY_SOURCES\javac *.java 
+0

pas correct: C: \ MY_SOURCES \ com \ Classes \ Pluto.class pas Pluto.java qui est en C: \ MY_SOURCES – xdevel2000

+0

poster le contenu de Pluto.java ou erreur exacte ... ou voyez si vous déplacez le dossier Pluto.java vers com/Classes. Si les deux Pluto.java et Pluto.class sont similaires. – prem

0

Peut-être vous introduit une erreur dans votre Pluto fichier. Lorsque vous essayez de compiler AClient, il essayera aussi de compiler Pluto (car il est utilisé par AClient) et atteindra l'erreur. Si vous enlevez Pluto.java vous avez le fichier de classe d'une compilation précédente (réussie), et il l'utilise, et cela fonctionne. Vous devriez vérifier Pluto.java et voir si elle compile par elle-même, ou s'il y a d'autres problèmes avec elle.

Questions connexes