2012-03-31 3 views
1

Ok, donc. J'ai commandé un livre sur Java (Sams vous apprend java en 21 jours) il y a une semaine, et il est arrivé hier. Je travaille sur le premier exemple de code, et je continue à obtenir cette erreur lorsque je tente de compiler le code principal:Problèmes JDK - Impossible de charger les fichiers de classe

C:\VolcanoApplication.java:5: error: cannot find symbol

VolcanoRobot dante = new VolcanoRobot();

^

symbol: class VolcanoRobot

location: class VolcanoApplication

C:\VolcanoApplication.java:5: error: cannot find symbol

VolcanoRobot dante = new VolcanoRobot();

    ^

symbol: class VolcanoRobot

location: class VolcanoApplication

Et le code principal Im essayant de compiler est:

public class VolcanoApplication 
{ 
    public static void main(String[] arguments) 
    { 
     VolcanoRobot dante = new VolcanoRobot(); 
     dante.status = "exploring"; 
     dante.speed = 2; 
     dante.temperature = 510; 

     dante.showAttributes(); 
     System.out.println("Increasting speed to 3."); 
     dante.speed = 3; 
     dante.showAttributes(); 
     System.out.println("Changing temperature to 670."); 
     dante.temperature = 670; 
     dante.showAttributes(); 
     System.out.println("Checking the temperature."); 
     dante.checkTemperature(); 
     dante.showAttributes(); 
    } 
} 

et la fichier VolcanoRobot.java:

public class VolcanoRobot 
{ 
    String status; 
    int speed; 
    float temperature; 

    void checkTemperature() 
    { 
     if(temperature > 660) 
     { 
      status = "returning home"; 
      speed = 5; 
     } 
    } 

    void showAttributes() 
    { 
     System.out.println("Status: " + status); 
     System.out.println("Speed: " + speed); 
     System.out.println("Temperature: " + temperature); 
    } 
} 

Je suis incapable d'obtenir javac à courir partout dans l'invite de commande (je suis sous XP), donc je navigue à l'endroit où mon javac.exe est (C: \ Program Files \ Java \ jdk1.7.0_03 \ bin) et compilez VolcanoApp lication à partir de là (VolcanoApplication se trouve à la racine de C :)

Quand je tape simplement Java n'importe où j'obtiens le menu, mais pas javac. J'ai déclaré les variables path et classpath, mais cela ne fonctionne pas. Aucune suggestion?

+0

@ Alex St-Laurent: Veuillez installer un IDE et se concentrer sur les vrais problèmes. – Jayan

+0

Je suis désolé, quoi? –

+0

@ Alex St-Laurent: vous avez mentionné que vous avez commencé le livre. Mon avis est d'utiliser un IDE afin que vous puissiez vous concentrer sur les problèmes réels. Essayez intelliJ: http://www.jetbrains.com/idea/. ou éclipse. – Jayan

Répondre

2

Votre meilleur pari est de faire javac travailler à partir de n'importe quel répertoire en allant dans les variables d'environnement et en changeant votre PATH de sorte qu'il comprend C:\Program Files\jdk1.7.0_03\bin.

Une fois que vous avez fait cela, dans une invite de commande en tapant javac n'importe où devrait fonctionner.

La raison javac ne trouve pas le fichier VolcanoRobot.java est que ce n'est pas dans le chemin que javac recherche les fichiers source. Par défaut, ce chemin inclut le répertoire courant, donc si vous cd dans le répertoire contenant VolcanoApplication.java et VolcanoRobot.java, puis

javac VolcanoRobot.java VolcanoApplication.java 

... devrait le faire. Si elle ne le fait pas, ajoutez -cp .:

javac -cp . VolcanoRobot.java VolcanoApplication.java 

Vous devriez alors être en mesure d'exécuter via

java VolcanoApplication 

... ou

java -cp . VolcanoApplication 

Mise à jour: Comme mon poste de travail principal est basé sur Linux, je ne l'avais pas fait sous Windows   7 (utilisé pour faites-le tout le temps avec Windows   XP) et donc je me suis demandé s'il y avait quelque chose de spécial à ce sujet. Ça ne ressemble pas à ça. J'ai installé le JDK sur ma boîte Windows   7 et n'ai eu aucun problème à l'utiliser.Voici ce exactement ce que je faisais:

  1. Ouverture d'une invite de commande et dactylographiées javac et appuyé sur Entrée, juste pour vous assurer que je ne l'ai pas en faire installer je ne me souviens pas. J'ai l'erreur habituelle "... n'est pas reconnue comme une commande interne ou externe".
  2. A téléchargé le programme d'installation JDK à partir d'Oracle.
  3. Lancez-le, en le laissant installer à son emplacement par défaut.
  4. Ouverture du panneau de commande.
  5. Dactylographié "environ" dans le champ de recherche (parce que je suis fainéant et ne prends pas la peine de savoir où ils l'ont déplacé cette semaine).
  6. Cliquez sur le choix "Modifier les variables d'environnement système" et cliquez sur Oui dans la fenêtre contextuelle des autorisations d'administration. Cela a ouvert une boîte de dialogue "System Properties" avec l'onglet "Advanced" ouvert.
  7. Cliquez sur le bouton "Variables d'environnement ..." de cet onglet.
  8. Dans la zone "Variables système" située en bas, faites défiler jusqu'à Path.
  9. Avec cela en surbrillance, cliquez sur le bouton "Modifier ...", qui a ouvert la boîte "Modifier la variable système".
  10. Dans l'Explorateur Windows, accédé au répertoire bin du JDK, qui se trouvait à C:\Program Files\Java\jdk1.7.0_03\bin.
  11. Cliquez sur dans la barre d'adresse, sélectionnez tout et copiez ce chemin vers le Presse-papiers.
  12. Retour dans la boîte "Modifier la variable système", je mets le curseur à la fin du chemin, tapé un point-virgule (;) (note: pas un deux-points, et sans espaces autour d'elle), puis collé le chemin du presse-papiers.
  13. Cliquez sur le bouton OK de cette case, sur le bouton OK dans la zone "Variables d'environnement" et sur le bouton OK dans la zone "Propriétés système".
  14. Ouvert d'une nouvelle invite de commande.
  15. Tapé javac et appuyé sur Entrée. J'ai obtenu la liste d'aide javac.
  16. Créé les deux fichiers source volcan et les mettre dans un répertoire (dans mon cas, C:\tmp\j).
  17. Modifié dans ce répertoire.
  18. TYPED:

    javac VolcanoRobot.java VolcanoApplication.java 
    

    ... et appuyé sur Entrée. Je n'ai pas d'erreurs.

  19. TYPED:

    java VolcanoApplication 
    

    ... et appuyé sur Entrée. Cela a très bien fonctionné, j'ai obtenu la sortie que je m'attendais à regarder les fichiers source.

Il n'y a donc pas de problème à faire cela sur Windows 7.   Peut-être ce que je l'ai fait ci-dessus sera utile pour vous.

+0

J'ai déclaré où javac est dans la variable path, et j'ai aussi déclaré tools.jar sous classpath, et pourtant, cela ne fonctionne pas. –

+0

@ AlexSt-Laurent: Je ne sais pas quoi te dire. Si vous avez placé le bon chemin vers 'javac' dans la variable d'environnement' PATH' et que vous avez redémarré votre invite de commande (vous avez dit que vous avez redémarré, ce qui compte), Windows ** trouvera ** javac' utilisant ce chemin. Si ce n'est pas le cas, cela signifie qu'il y a un problème avec le chemin que vous avez ajouté à 'PATH'. Dans votre invite de commande, tapez 'path' et appuyez sur Entrée. Si vous ne voyez pas le chemin vers 'javac', vous ne l'avez pas ajouté correctement. Si vous pensez que vous voyez le chemin de 'javac', regardez ** de très près ** pour voir où se trouve la faute de frappe (il y en a une, soit dans le chemin, soit devant la lettre); –

+0

J'ai navigué à l'endroit où javac se trouve dans Windows Explorer, copié et collé le chemin dans la variable de chemin. (il apparaît parfaitement dans CMD) Merci d'essayer d'aider, mais je pense que le problème est unfixable. Je suis en train de mettre les fichiers .java directement là où javac est trouvé, et cela semble fonctionner correctement. –

1

Si le C: \ Program Files \ Java \ jdk1.7.0_03 \ bin dossier est entré dans votre variable d'environnement de chemin système, vous pourriez avoir besoin de rouvrir cmd.exe, car il ne se charge pas ces environnement variables à la volée.

Vous devez ensuite exécuter javac depuis la racine de votre application.

+0

J'ai essayé tout cela, même redémarrage, si ça aide, j'ai le Service Pack 3 sous XP –

+0

@ AlexSt-Laurent: Si vous avez redémarré et que vous ne trouvez toujours pas javac, vous n'avez pas réussi à placer le chemin correspondant dans votre variable 'PATH' et vous devez revenir en arrière et revérifier. –

+0

Ensuite, il doit être incorrect dans votre variable Path. Cela vaut la peine d'un double contrôle. Sous Propriétés du système> Variables d'environnement, il s'appelle 'Path' (pas pathtext ou classpath). Les entrées doivent être séparées par un point-virgule. Désolé si c'est tout à fait évident, mais c'est où le problème est, et vous devez vérifier deux fois :) – lynks

Questions connexes