File not found avec javac [Fermé]

Signaler
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
-
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
-
Bonjour,

J'ai acheté récemment le livre d'Anne Tasso "Le livre de Java premier langage"
J'ai téléchargé java et netbeans.J'ai configuré le chemin path pour la commande javac.

Ensuite j'ai copié son premier programme sur la circonférence du cercle dans le Bloc-Notes, puis je l'ai enregistré sous format .java. Et mis sur le Bureau.

Mais la compilation "javac Cercle.java" donne "javac: file not found Usage: javac <options> <source files> use -help for a list of possible options "
Par contre sur l'environnement Netbeans le programme fonctionne, même si la commande Scanner ne se colore pas.

Comment faire pour que ça marche sans netbeans ?

Merci d'avance

2 réponses

Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
Bonjour,

Déjà l'installation du JDK et la configuration du PATH semble bonne bonne, sinon il ne t'afficherais pas l'aide de javac.

Par contre je pense que tu n'es pas au bon endroit quand tu lances ta commandes. Par défaut lorsque tu ouvres une invite de commande tu es dans C:\Users\MonNom, il faut ensuite se déplacer vers le dossier qui contient ton fichier avec la commande cd (change directory).
Par exemple cd C:\Workspace\MonProjet où MonProjet serait le dossier où se situe le fichier Cercle.java

Attention aux packages :
Si ton programme commence par la ligne
package tata.toto;
cela veut dire que le fichier Cercle.java doit être situé dans une arborescence de fichiers MonProjet\tata\toto\Cercle.java mais la commande javac doit être effectuée dans le dossier MonProjet, pas dans le dossier toto.

cd C:\Workspace\MonProjet
javac tata\toto\Cercle.java
java tata.toto.Cercle
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
12
Ok merci, j'ai fait cd:\blabla\Desktop et tout marche impecc.
Merci beaucoup :)

Y a-t-il des sites où on peut trouver les remèdes aux messages d'erreur, je suis encore novice (je programmais en basic il y a fort longtemps sur amstrad mais les ordi de maintenant sont bien différents) ?

Bonne soirée !
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843 >
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020

Contrairement à d'autres langages, Java est assez explicite sur les erreurs, il ira même jusqu'à te dire quelle ligne exacte pose problème (que ce soit à la compilation ou à l'exécution) donc il n'y a pas trop de soucis à se faire.

D'un point de vue générale, toute l'API Java est documentée, ce qui permet de savoir précisément ce que font chaque classe et méthode :
https://docs.oracle.com/javase/8/docs/api/
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
12
Rebonjour,

J'ai un nouveau problème.

J'ai décidé de déplacer Cercle.java du Bureau à Documents, puis j'ai fait cd\bla bla et j'ai recompilé, ça marche bien. Mais l'exécution de Cercle donne un message d'erreur " Erreur : impossible de trouver ou charger la classe principale Cercle"

Quel est le problème ?

Merci d'avance de votre aide
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
12
J'ai découvert que le langage de l'invite de commande était MS-DOS et j'ai trouvé le moyen grâce à vous de créer des fichiers bat. Ainsi je les stocke dans Windows\System32 car c'est l'adresse à laquelle l'invite se place par défaut.
Y a-t-il un truc pour écrire un chemin sans avoir à tout retaper?
Si je suis dans Documents je veux pouvoir passer d'un dossier à l'autre sans avoir à retaper toute l'adresse depuis cd C:\users\my_name\documents\le_dossier_en_question.
S'il était possible de taper un truc du genre \le_dossier_en_question sans retaper tout depuis C:\.
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843 >
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020

"J'ai découvert que le langage de l'invite de commande était MS-DOS"
MS-DOS a été abandonné en 2000, il n'existait déjà plus sous Windows XP...

"je les stocke dans Windows\System32"
Très mauvaise idée ! En faisant ce genre d'erreurs que l'on peut se retrouver avec un système d'exploitation totalement instable...

"Y a-t-il un truc pour écrire un chemin sans avoir à tout retaper?"
Tu peux faire des accès en chemin relatif. Si tu as un dossier C:\X\Y\Z tu peux mettre ton fichier .bat dans C:\X\Y et accéder au répertoire Z en faisant
cd Z
, ou accéder au répertoire X en faisant
cd ..
tu peux bien sûr cumuler, par exemple revenir à C:\ en mettant
cd ..\..
dans ton .bat

Cependant je ne vois pas trop l'intérêt de ce genre de manipulations. Un fichier .bat s'exécute relativement au répertoire qui le contient, en gros si tu mets un fichier .bat dans C:\X\Y et que tu cliques dessus, il s'exécutera depuis le répertoire Y, donc si ton fichier .java (ou .class) est aussi dans Y tu peux directement faire les commandes
javac
(ou
java
) sans avoir à faire de
cd
pour te déplacer.

Du coup tu n'as absolument aucune contrainte et tu dois pouvoir mettre tes fichiers n'importe où : dans Mes Documents, Program Files, sur le Bureau, ou même sur une clé USB... Java fonctionnera partout.
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
12 >
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021

Mon idée était de mettre l'invite de commande dans Bureau, mais comme elle repart toujours de C:\Windows\System32 je voulais mettre un fichier bat dans ce dossier. Un envoyant sur le bureau, un autre dans documents.
Mais si vous me dites que c'est dangereux pour le système, comment faire pour qu'en ouvrant l'invite de commande sur le bureau (raccourci) elle parte directement de Bureau ou de documents ?
Finalement on n'échappe pas à la laborieuse tâche de retaper un chemin à chaque ouverture de l'invite ?
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843 >
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020

Il ne faut pas créer un raccourci de l'invite de commande sur le bureau, mais créer un fichier avec l'extension .bat qui contiendra les commandes (que j'ai mis ici), ce fichier .bat étant placé dans le même dossier que les fichiers .java (n'importe où)
Messages postés
241
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
20 août 2020
12
Ah oui c'est marrant quand on lance make et run ils partent de l'endroit où est le fichier java.
Merci de votre patience, je débute en java et sur les nouveaux systèmes informatiques.