vendredi 21 mai 2010

ジャバの骨1課 : Error: could not open `...\Java\lib\i386\jvm.cfg'

Etant en plein bidouillage avec Java j'ai installé entre autres Eclipse qui a déjà eu l'occasion d'être pour moi un partenaire de choix lors de petits projets du temps de mes études (Un projet de fin d'année et un outil de travail à la maison pour refaire mes TP/TD Java). Bref, j'ai déjà explorer quelque peu Java mais dans le premier cas c'était from scratch, c'est-à-dire qu'on m'avait lâché un projet en Java alors que je n'avais jamais appris le Java auparavant... -_-
Bref je m'en suis plus ou bien moins sorti (merci au boulet qui a prétendu finir sa parti de projet en 2 temps 3 mouvements et qui a en fait foutu un boxon tel que les autres membres du groupe se son vu en mauvaise position le jour de l'oral dont moi. On avait testé nos programmes la veille tout marchait bien et le jour du passage... Hein !? Mais?!... xD ).
Pour faire court j'ai envie de :
  1. mieux comprendre la syntaxe de base de Java. Pas foutu de déclarer un tableau en Java. ;)
  2. mettre en pratique ce que j'ai pu apprendre.
  3. avancer, apprendre d'autres choses, faire de Java un langage où je me sentirais en confiance.
    Inutile de vous dire que si vous me demander de faire une appli je ne me sentirais pas prêt même si je connais les principes généraux de la programmation.
 Bref, revenons en au but de ce topic.
Comme je l'ai dis j'ai installé Eclipse et dernièrement j'ai voulu utiliser Javadoc pour le fun de tester. Javadoc est un outil fourni dans le JDK de Java, or au départ je n'ai pas insisté pour installer le JDK parce que le JRE était déjà installé. J'étais de toute évidence plus intéressé par la programmation de petites appli histoire de me remettre en forme que je m'amuser à générer une Javadoc mais la curiosité faisant les choses je me suis senti l'envie d'essayer. Il m'a fallu donc installer le JDK ce qui a donc fini par une désinstallation du JRE et une installation du JDK. Malheureusement une fois sous Eclipse je recevait un message d'erreur bizarre.

java.lang.NoClassDefFoundError: com/sun/tools/javadoc/Main 
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javadoc.Main 
 at java.net.URLClassLoader$1.run(Unknown Source) 
 at java.security.AccessController.doPrivileged(Native Method) 
 at java.net.URLClassLoader.findClass(Unknown Source) 
 at java.lang.ClassLoader.loadClass(Unknown Source) 
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
 at java.lang.ClassLoader.loadClass(Unknown Source) 
Exception in thread "main" Could not find the main class: com.sun.tools.javadoc.Main.  Program will exit.

Je ne voyais pas d'où ça pouvait venir et en installant le JDK sur une autre machine c'est passé comme dans du beurre.
Une réinstallation n'ayant rien changé au problème jusque au moment où je décide de nettoyer les traces du logiciel (registre, fichiers restants,...) et là en tapant java dans l'invite de commande :

C:\Documents and Settings\EminoMeneko>java
Error: could not open `C:\Program Files\...\Java\lib\i386\jvm.cfg'


Ben dis donc ?! Qu'est-ce que c'est que ça ?
J'ai pas touché au %PATH% vu que je comptais utiliser le même mais je ne m'attendais pas à une erreur de ce type là.
Après une petite séance de Googleage je tombe sur divers forum où on incendie le gars (qui a le même souci que moi) en le prenant limite pour un débile et en proposant tout et n'importe quoi. et un site où une personne propose une réponse courte, simple mais efficace.
Vous l'avez compris, le but de ce topic est donc de garder une trace de cette solution qui concerne l'environnement Java sous Windows. Je copie le contenu du message intéressant ici dans un but de pérennité mais je laisse le lien de la source plus bas. :)
I was also facing the same problem
I was trying to install java 6 using the exe available and after that i tried to uninstall.I was facing the same issue

Even if you set the path the classpath properly in envirinment variables it might not work

There are two ways of solcing this problem
1) to set the path and classpath variable in command prompt and start eclipse from the same command prompt

2)There will be three exe files in the location C:\WINDOWS\system32\.They are java.exe,javaw.exe,javaws.exe.Delete those and start eclipse normally

It is working for me

It can be
that
Source.
Bref, c'est un peu balo de proposer une solution Windows à une question qui concerne Ubuntu mais ça m'a bien aidé et j'ai pas eu 50 ans à passer à chercher la solution. Court, simple mais efficace : tout ce que j'aime !

J'ai choisi l'option 2, Eclipse redémarre bien (parce qu'il ne voulais plus démarrer entre temps), Visual Editor ne me sort plus des messages barbares et la génération du Javadoc se porte comme un charme.

Je pourrais aussi mettre une petite note sur la manière d'installer Java en system-wide sous Linux comme memento mais depuis que j'ai réussi je ne l'ai pas fait souvent et je ne me souviens plus trop de la manière de faire. Vaguement je me souviens que le fichier installe Java mais que si ont veut le faire marcher il faut définir le $path pour Java et j'ai du faire ça dans mon bashrc donc ça doit se trouver dans le précédent topic sur les fichiers de config Linux.

Voilà. Bon ben moi je vais coder un peu. :)