2010-09-06 5 views
2

J'ai écrit un programme Java qui a 3 classes. Quand j'utilise javac, j'obtiens des erreurs chaque fois que ma classe principale tente d'interagir avec les autres classes. Y at-il quelque chose de spécial que je dois faire? J'appelle juste javac Main.java. Toute aide serait grandement appréciée.Le compilateur ne trouve pas d'autres classes dans le même répertoire

Edit:

DFA myDFA = new DFA(); 
String test = args[0]; 
if(myDFA.accept(test)) 

et l'erreur est:

Main.java:19: cannot find symbol 
symbol: class DFA 
location class dfa.Main 

J'ai 3 de ces erreurs

+2

Veuillez spécifier les erreurs que vous recevez et partager l'extrait de code le plus simple possible qui présente toujours ce comportement. –

Répondre

3

Oui, vous devez spécifier l'classpath en utilisant l'option -classpath sur javac lorsque vous compilez.

Essayez de compiler comme ceci:

javac -classpath . *.java 

Notez le 'point' après -classpath. Il indique au compilateur de rechercher dans le répertoire courant les fichiers .java dont il a besoin.

Si vous avez besoin d'autres chemins ou JAR, vous devez vous assurer qu'ils apparaissent également dans le -classpath.

+1

Pas nécessairement, pas si (par exemple) son chemin de classe contient déjà "." –

+0

@ T.J: Extrait de la question: * "J'appelle javac Main.java" * Non, il ne l'a probablement pas spécifié. – BalusC

+0

D'après les preuves disponibles, je suppose qu'il n'a pas du tout spécifié le chemin de classe. – duffymo

2

Vous devez compiler les classes indivdually -à-dire javac class1.java javac class2.java javac class2.java

etc.

puis exécuter comme

java cp . MainClass.Main

-1

d'abord, utilisez un IDE. ne fais pas de ligne cmd.

si vous utilisez javac, vous devez donner tous les fichiers sources qui doivent être compilées

javac Main.java DFA.java ... 

javac *.java 

javac -sourcepath . Main.java 

encore, obtenir un IDE, ne pas faire la ligne cmd.

+0

J'utilise habituellement un IDE, mais mon prof nécessite qu'il puisse tester mon code de cette façon, donc je dois le tester de cette façon. – PFranchise

Questions connexes