J'ai récemment reformaté mon système de Fedora 15 32 à Fedora 15 64 bits. J'ai installé la version 64 bits de Java, a commencé une nouvelle instance Netbeans, essayé de construire mon projet qui utilise du projet Lombok, et a obtenu ceci:tools.jar n'est plus sur classpath?
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/parser/Scanner$Factory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at lombok.delombok.DelombokApp$1.loadStreamAsClass(DelombokApp.java:102)
at lombok.delombok.DelombokApp$1.loadClass(DelombokApp.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at lombok.delombok.Delombok.delombok(Delombok.java:358)
at lombok.delombok.Delombok.main(Delombok.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at lombok.delombok.DelombokApp.runApp(DelombokApp.java:55)
at lombok.core.Main.go(Main.java:127)
at lombok.core.Main.main(Main.java:41)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.parser.Scanner$Factory
at java.lang.ClassLoader.findClass(ClassLoader.java:522)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at lombok.delombok.DelombokApp$1.loadClass(DelombokApp.java:118)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 15 more
Je n'ai jamais eu cette erreur avant. Cette erreur particulière est venue du plugin exec Maven essayant d'exécuter lombok pour delombok du code source. Sur l'ancien système, cela fonctionnait tout le temps sans problème. Maintenant ce n'est pas. Ce qui est déconcertant, c'est que sur l'ancien système, cela fonctionnait bien que j'utilisais à la fois Java 6 et plus tard Java 7 sans avoir à faire quelque chose de spécial. J'ai aussi souvent supprimé Netbeans et ses fichiers, soit en mettant à jour vers une nouvelle version, soit en voulant simplement l'accélérer à nouveau. Il n'y a donc pas de paramètres spéciaux ou de cases à cocher que je pourrais changer dans les deux programmes. Même alors, je ne me souviens pas de faire quelque chose de spécial pour le faire fonctionner.
Pourquoi est-ce que je reçois tout à coup cette erreur? Pourquoi tools.jar n'est pas automatiquement ajouté au classpath? Et si c'est un comportement normal, comment cela a-t-il fonctionné auparavant?
Java est plus modulaire maintenant. Dans une certaine mesure, c'est une caractéristique liée à votre problème: http://www.infoworld.com/d/developer-world/java-get-more-modular-jdk-7-upgrade-919 – Snicolas
Puis-je dire que ma réponse était pas si gros loin @TheLQ? – Snicolas