Éditions Eyrolles

Groupe Eyrolles

Le livre de Java, premier langage de Anne Tasso

FAQ

Thème : Erreur Can't Read MonFichier.java

Question :
Dès que je frappe la ligne de commande dans l'émulateur Dos : javac MonFichier.java celui-ci me répond "error: Can't Read MonFichier.java 1 error" et il refuse de faire quoi que ce soit d'autre!

Réponse :
Le message d'erreur indique que le compilateur Javac ne peut pas lire le fichier BonjourMonde.java. Cela veut dire que ce fichier n'existe pas dans ce répertoire. Puisque que vous êtes sur de l'avoir enregistré dans le répertoire où vous lancez la commande javac, cela veut dire que le fichier ne porte pas le nom BonjourMonde.java sous la bonne orthographe. Pour cela vous pouvez :

  1. Vérifier que vous avez sauvegardé le fichier avec les majuscules au bon endroit, en tapant la commande : dir BonjourMonde.* dans la fenêtre commandes MSDOS.

    Vous devez voir apparaître un message vous indiquant que le fichier existe ou n'existe pas. S'il nexiste pas c'est qu'il y a un problème dans l'orthographe.

  2. Si vous avez écrit ce programme avec l'éditeur edit (sous Dos), il se peut que cet editeur force la sauvegarde du fichier avec l'extension .jav au lieu de .java.

    Pour vérifier si c'est le cas, tapez la commande : dir *.jav Si le message vous indique que le fichier BonjourMonde.jav existe, cela veut dire qu'il faut modifier son extension. Pour cela je vous invite à le faire sous Windows en modifiant le nom placé sous l'icone représentant le fichier BonjourMonde.jav.

  3. Si vous avez écrit ce programme avec l'éditeur BlocNote (sous Windows), il se peut que cet editeur force la sauvegarde du fichier avec l'extension .txt au lieu de .java.

    Pour vérifier si c'est le cas, tapez la commande : dir *.txt dans la fenêtre commandes MSDOS. Si le message vous indique que le fichier BonjourMonde.txt existe, cela veut dire qu'il faut modifier son extension. Pour cela je vous invite à le faire sous Windows en modifiant le nom placé sous l'icone représentant le fichier BonjourMonde.txt.

Attention sous Windows les véritables extensions ne sont pas toujours visibles. Il se peut que vous sauvegardiez votre fichier avec l'extension .java et que l'éditeur ajoute une extension supplémentaire comme par exemple pour votre fichier BonjourMonde.java.txt.


Thème : Les opérateurs logiques

Question :
Pourquoi dans le projet de gestion de compte la boucle Do-While du case 1: dans le switch il y a comme instruction de sortie de boucle les opérateurs conditionnels && et non ||. " J'ai effectivement essayé avec le ou logique et ça ne fonctionne pas puisqu à chaque saisie de type de compte , on me redemande de saisir le type de compte et ce sans interruption. Poutant je pense qu'avec || ce devrait aller puiqu'il suffit qu'une seule condition soit vrai. Ainsi quand je saisi comme type de compte C (par exemple) je ne devrais pas avoir une nouvelle requête du genre saisissez le type de compte.

Réponse :
Pour bien comprendre comment fonctionne les tests de boucle, il faut prendre l'habitude de le traduire en "français". Ici on peut traduire la boucle par :

Faire :

Lire le type du compte

Tant que le type lu n'est pas un compte epargne (E) et n'est pas non plus un compte courant (C) et n'est pas non plus un compte joint (J).

La boucle est répétée tant que la condition est vraie. Ce qui veut dire que dès que le compte est un E ou un C ou un J, la proposition devient fausse. Il n'y a plus besoin de lire le type de compte, le programme peut sortir de la boucle.

Si vous remplacez les et par des ou la phrase devient :

Tant que le type lu n'est pas un compte epargne (E) ou n'est pas non plus un compte courant (C) ou n'est pas non plus un compte joint (J).

La boucle est répétée tant que la condition est vraie. Elle reste toujours vraie parce que pour qu'elle devienne fausse, il faudrait que le type du compte soit en même temps E, J et C ce qui n'est pas possible puisqu'une variable ne peut contenir qu'une valeur à la fois.

Pour bien comprendre comment fonctionnent les tests logiques, reportez vous aux cours de Math sur la logique comme par exemple Non (P ou A) est équivalent à Non P et Non A...


Thème : La classe Lire.java

Question :
J'ai besoin de programmer en Java dans plusieurs systèmes de programmation donc dans certains cas je ne pourrais pas utiliser le CD-Rom. Donc je voudrais savoir comment effecuer une lecture au clavier de valeur réelles ou entières ainsi que des chaines de caractères.

Réponse :
Pour saisir des valeurs au clavier (de tout type) il suffit de copier le fichier Lire.java (se trouvant sur le CDRom) sur votre disque dur dans le répertoire où se trouve le programme que vous exécutez. Lire.java fonctionne sur tout type d'environnement (Window, Dos, Unix, Linux, MacOS). Si votre système n'a pas de lecteur de CDRom, vous pouvez vous l'envoyer par mel en fichier attaché, depuis un PC ou un Mac.

Question :
Comment intégrer facilement la fonction de lecture "Lire. xxx( )" dans les exercices ?

Réponse :
Pour intégrer Lire.java dans un programme, il suffit de placer le fichier Lire.java dans le même répertoire que le programme correspondant à l'exercice. En compilant le fichier correspondant à l'exercice, le compilateur ira aussi compiler le fichier Lire.java.

Une autre méthode est d'utiliser la variable d'environnent Classpath, comme je l'explique dans le fichier Outils.pdf qui se trouve sur le CDRom fourni avec le livre dont voici l'extrait utile :

Lorsque l'on commence à écrire des applications utilisant plusieurs fichiers, il est intéressant d'utiliser la variable d'environnement classpath. En effet, certains fichiers (classes) sont utilisés par différents programmes. En plaçant ces fichiers dans un dossier appelé par exemple "commun" et en définissant la variable classpath comme suit : set classpath=.;C:\Mes documents\java\commun, nous indiquons au compilateur comment il doit rechercher les classes qui ne sont pas définies dans le répertoire où se trouve le fichier qu'il compile. La définition de la variable classpath s'effectue dans le fichier autoexec (voir section Comment configurer votre ordinateur) Le fichier Lire.java est un bon exemple de programme utilisé par plusieurs applications différentes. Pour éviter d'avoir à copier le fichier dans le répertoire où se trouve l'application à développer, il est plus judicieux de le placer une seule fois dans le dossier C:\Mes documents\java\commun. De cette façon, lors de la compilation d'un programme utilisant une méthode de la classe Lire, le compilateur ne trouvant pas le fichier Lire.java dans le répertoire de l'application cherche automatiquement dans le(s) répertoire(s) spécifié(s) dans la variable classpath.

Question :
Le compilateur me donne toujours le même message d'erreur :
Cercle.java:5 cannot resolve symbol symbol : variable Lire location : class Cercle rayon = Lire.d();

Réponse :
Etes vous sur d'avoir placé le fichier Lire.java dans le même répertoire que Cercle.java ?

Si oui, peut être que le fichier Lire.java que vous avez copié du CDRom sur votre disque dur est encore en mode Read Only, il faut le transformer en Read Write en le sauvegardant sous le même nom avec un éditeur.

Question :
J'ai beaucoup de mal à compiler les programmes que vous proposer en exemple dans votre livre, car le compilateur ne veut jamais compiler le programme : Lire.d() , afin de pouvoir suivre ma formation de Java, pouvez-vous SVP, me proposer une solution.

Réponse :
Pour intégrer Lire.java dans un programme, il suffit de placer le fichier Lire.java dans le même répertoire que le programme correspondant à l'exercice. En compilant le fichier correspondant à l'exercice, le compilateur ira aussi compiler le fichier Lire.java. Une autre méthode est d'utiliser la variable d'environnent Classpath, comme je l'explique dans le fichier Outils.pdf qui se trouve sur le CDRom fourni avec le livre.

Question :
Je n'arrive pas à compiler le fichier Cercle.Java, le compilateur (sous dos) m'envoie le message d'erreur lire.d() : variable not defined. Que dois-je faire ?

Réponse :
La fonction Lire.d() comporte une majuscule "L". Vous devez donc remplacer lire.d() par Lire.d(). En outre n'oubliez pas de placer le fichier Lire.java dans le même répertoire que le fichier Cercle.java.


Thème : Java avancée

Question :
J'aurais beaucoup aimer savoir si vous allez publier la suite de cet ouvrage prochaiment ou eventuellement me conseiller un autre ouvrage pas forcement de la meme edition traitant de java plus avavance ? P.S (en francais ).

Réponse :
Je n'ai pas encore écrit de suite, pour l'instant. Un livre interessant est "Java la synthèse" de G.Clavel N.Mirouze S.Munerot E.Pichon M.Soukal S.Tiffanneau aux éditions Dunod, prix : 195F.

Question :
Pourriez-vous m'indiquer la (ou les) commandes JAVA permettant de suspendre ou d'arrêter automatiquement la connection d'un ordinateur à l'internet après un certain temps t ?

Réponse :
Pour cela, il faut consulter un livre sur JSP qui est le langage Java côté Serveur. Il en existe plusieurs, un aux éditions Eyrolles qui est plus orienté développeur, un autre aux éditions CampusPress qui est d'un niveau plus intermédiaire. Pour connaitre leur titre, je vous conseille de vous connecter sur le site www.eyrolles.com


Thème : La classe String

Question :
Dans le chapitre qui traite de la classe prédéfinie String, il est écrit :

String mot = "exemple" ;
String second = mot ;
mot = "nouveau" ;

Ensuite, il est dit que mot ne pointe plus sur exemple mais sur nouveau et que second pointe sur exemple.

Que se serait-il passé si nous n'avions pas mis String second = mot. En fait, ma question est : mot aurait désormais pointé sur nouveau, mais la case exemple aurait elle disparue ou existe-t elle avec aucun objet qui pointe dans sa direction ? si la deuxième solution est la bonne peut-on la supprimer ?

Réponse :
Dans le cas où nous n'aurions pas mis l'instruction String second = mot ; le valeur "exemple" aurait disparue de la mémoire.

De plus, l'interpréteur Java gère lui même la mémoire de l'ordinateur. Il existe un petit programme interne à Java qui recherche toutes les données (valeurs) qui ne sont plus utilisées (pointées) par des objets ou des variables. Lorsqu'il trouve de telles valeurs, il les détruit afin de libérer de la mémoire. Ce programme s'appelle un ramasse miette (en anglais que l'on dit garbage collector)


Thème : Impression des fichiers pdf

Question :
Je suis déçu de constater que les fichiers .pdf du CD-Rom sont impossibles à imprimer. Lorsque la quantité de texte et son contenu nécessitent des annotations, un travail suivi demandant de feuilleter rapidement l'ouvrage, il est nécessaire d'en disposer sous format papier. De plus, la lecture des caractères à l'écran n'est jamais nette, et la police du code en particulier est très mal adaptée à la visualisation sur écran. Y a-t-il un moyen de se procurer ces corrigés en un format papier ou imprimable? A défaut, existe-t-il un site où l'on puisse télécharger une version imprimable de ces exercices ?

Réponse :
Effectivement, la version des fichiers n'est pas imprimable, mais je peux vous envoyer en attaché une version imprimable.

Cette version sera prochainement téléchargeable sur la page www.editions-eyrolles.com/livres/tasso.


Thème : Apprendre Java avant C, C++ ou Pascal

Question :
Dans notre université, le langage utilisé pendant les 3 premiers semestres de DEUG MIAS est le Pascal (depuis très longtemps) et le quatrième semestre est consacré à une introduction à la programmation objet en utilisant Java. La transition est très difficile pour les étudiants. Nous envisageons éventuellement d'adopter Java dès le premier semestre mais les avis sont très partagés. Nul doute que votre livre permettra de faire avancer les choses. J'aimerais savoir si vous avez pu mesurer si des étudiants ayant abordé la programmation avec Java pouvait facilement s'adapter à la programmation impérative classique avec un langage style C ou Pascal.

Réponse :
A l'IUT de Marne la Vallée, nous enseignons le langage Java, depuis 4 ans pour des débutants. Cette expérience me conforte dans l'idéée que l'initiation à ce langage en tout début de formation est tout à fait conseillée.

Java est un langage suffisament sur et structuré pour l'enseigner à des débutants (ce qui n'est pas forcément le cas du C++). D'autre part, le passage de l'objet au séquentiel se fait beaucoup plus rapidement que l'inverse (et je comprends tout à fait les difficultés de vos étudiants dans la transition Pascal-Java). Les étudiants connaissant bien Java n'ont aucun mal à apprendre ensuite le C.

Question :
1/ Est-ce qu' il existe une documentation en français (JAVA 2 SDK v1.3.0) ?
2/ Avez-vous écrit d'autres livres afin d'approfondir la connaissance du JAVA ? Que me conseillez-vous comme d'autres livres qui couvrent tout JAVA 2 et C/C++ ?
3/ Est-ce qu’il faut apprendre le C d'abord puis le C++ en parallèle avec JAVA ou passer directement C++ ? Si oui que me conseillez-vous comme livres qui ont une pédagogie similaire à la votre ?

Réponse :
1/ Il existe un livre qui s'appelle "Le dictionnaire officiel Java2" de P. Chan aux Editions Eyrolles. Je ne sais pas s'il intègre la nouvelle version 1.3.
2/ et 3/ Il vient de sortir un livre chez Eyrolles qui s'appelle "Apprendre Java et C++ en parallèle " de J.B Boichat. Si vous avez des questions concernant le C et le C++, vous pouvez contacter de ma part, Mr Boichat à l'adresse Jean-Bernard.Boichat@eas.ericsson.se


Thème : Le CD Rom

Question :
J'aimerais savoir où je peux trouver les corrections de vos exercices.

Réponse :
Toutes les corrections se trouvent dans le CDRom livré avec livre dans le fichier PDF portant le nom Corrigés. Pour lire ce fichier, consulter page 185, le chapitre Contenu et exploitation du CD Rom

Question :
Comment fait on pour installer les logiciels à partir du CD-Rom

Réponse :
Il n'y a pas d'installation à proprement parlé. Il y a différents répertoires dont les noms sont suffisament évocateurs pour vous dire ce qu'ils contiennent.

Pour lire les fichiers comme outils.pdf, il faut installer Acrobat Reader qui se trouve dans le dossier Acrobat. L'installation se fait en cliquant sur l'icônes d'install et en répondant aux questions qui vous sont demandées.

Pour installer le compilateur SDK, il faut cliquer sur l'icône d'install qui se trouve dans le répertoire Java2.