Problème avec les variables d'environnement

Fermé
Ludojava Messages postés 2 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 16 octobre 2012 - Modifié par Destrio5 le 15/10/2012 à 15:57
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 oct. 2012 à 14:06
Bonjour,

Je me suis mis récemment à la programmation (Java). Je compile avec un IDE (Netbeans). Et jusque-là les choses allaient plutôt bien. Mais je n'arrive pas à faire fonctionner une application multifichiers, et je suis bloqué depuis trois semaines. Je travaille avec Windows 7, et je pense que le problème pourrait provient des variables d'ajustement que je ne sais pas trop comment définir....
J'ai besoin d'aide...
Merci.

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 oct. 2012 à 16:45
Point positif : tu as bien défini ton environnement et tes outils.
Point négatif : tu ne décrit absolument pas ton problème !
pour décrire un problème, il faut que tu expliques :
- ce que tu veux que ça fasse
- ce que ça fait en vrai
- ce que tu as fais pour en arriver là (exemple un bout de code avec l'explication de ton algorithme).
0
Je voulais pas ennuyé avec tous les détails, mais les voilà.

En fait, il s'agit d'un programme que j'ai trouvé dans le manuel de java que j'utilise.
Si j'ai bien compris, on définit dans un premier temps une classe (ici la classe Cercle) comme ceci :

package cercle;

public class Cercle {

public int x,y; // Position du centre
public int r; // rayon
// Affichage des donnees de la classe
public void afficher()
{
System.out.println("Cercle centre en " + x + ", "+ y);
System.out.println("de rayon : "+r);

}
// Calcul du perimetre d'un cercle
public double perimetre()
{
return 2*Math.PI*r;

}
// Deplace le centre du cercle en (nx, ny). Ces coordonnes
//etant passees enn parametres de la fonction
public void deplacer(int nx,int ny)
{
x=nx;
y=ny;
}
//Augmente la valeur courante du rayon avec la valeur
// passee en parametre
public void agrandir(int nr)
{
r =r+ nr;
}

}// Fin de la classe

Dans un deuxième temps, on crée une application utilisant ce que l'on a défini dans la classe Cercle. Voici le programme :

package fairedescercles;

import java.util.*;
public class FaireDesCercles
{

public static void main(String[] arg)
{
Cercle A =new Cercle();
Scanner lectureClavier = new Scanner (System.in);
A.afficher();
System.out.println("Entrez la position en x : ");
A.x =lectureClavier.nextInt();
System.out.println("Entrez la position en y : ");
A.y = lectureClavier.nextInt();
System.out.println("Entrez le rayon : ");
A.r = lectureClavier.nextInt();
A.afficher();

double p =A.perimetre();
System.out.println("Votre cercle a pour perimetre : "+p);
A.deplacer(5,2);
System.out.println("Apres un deplacement : ");
A.afficher();
A.agrandir(10);
System.out.println("Apres un agrandissement : ");
A.afficher();

}
}

Mais quand j'exécute le programme sur Netbeans, j'obtiens :

run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot find symbol
symbol: class Cercle
location: class fairedescercles.FaireDesCercles
at fairedescercles.FaireDesCercles.main(FaireDesCercles.java:10)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
16 oct. 2012 à 09:14
Le problème exact est donné par le compilateur :
- cannot find symbol
symbol: class Cercle

Tu as oublié d'importer la classe cercle dans ton programme principale. Je ne suis pas assez bon en Java pour te dire comment faire.
Pour progresser en programmation, il faut apprendre à lire les messages d'erreur des compilateurs. La plupart du temps ils sont assez explicites.
0
Ludojava Messages postés 2 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 16 octobre 2012
16 oct. 2012 à 13:53
Je te remercie de ta réponse.

Le manuel que j'utilise signale en effet qu'en exécutant l'application FaireDesCercles, si le compilateur ne trouve pas le fichier Cercle.java, il provoque une erreur de compilation du type "Class Cercle not found", ce qui est cohérent avec ta réponse.

Mais mon manuel ajoute tout de suite après que pour corriger cette erreur, il est possible de spécifier au compilateur où il peut trouver le fichier recherché en définissant une variable d'environnement CLASSPATH. Mais c'est là que mon manuel n'est plus clair du tout : comment concrètement définir cette variable CLASSPATH ?

Je rappelle que je compile avec Netbean 7.2, j'utilise le jdk1.7.0-07, et que je travaille avec Windows 7.

Merci de ton aide.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
16 oct. 2012 à 14:06
regarde donc la notice de Netbean.
C'est pour ça que je suis partisan d'apprendre à programmer en console, il suffit alors de faire
javac FaireDesCercle.java -classpath c:\....
0