web-dev-qa-db-fra.com

java.lang.RuntimeException: code source non compilable - quelle peut en être la cause?

Cette erreur est juste bizarre, mon code compile bien, je peux voir qu'il n'y a pas de problèmes avec cela, pourtant cette erreur est juste apparue. J'ai essayé de redémarrer NetBeans et il n'y a aucune information d'exception supplémentaire.

Qu'est-ce qui peut causer ça?

48
MalcomTucker

Je suppose que vous utilisez un IDE (comme Netbeans) qui vous permet d’exécuter le code même si certaines classes ne sont pas compilables. Lors de l'exécution de l'application, si vous accédez à cette classe, cela entraînerait cette exception.

32
Chandra Sekar S

Si c'est Netbeans, essayez de décocher le paramètre "Compiler lors de l'enregistrement" dans les propriétés du projet (Build -> Compiling). C'est la seule chose qui m'a aidé dans une situation similaire.

Source: http://forums.netbeans.org/post-45324.html

67
Dime

Cela est dû au fait que NetBeans a conservé une partie de l’ancien code source et/ou compilé dans son cache et n’a pas remarqué que, par exemple, certaines dépendances du code (c'est-à-dire les packages référencés) ont été modifiées et un rafraîchissement/recompilation correct du fichier serait en ordre.

La solution consiste à forcer cette actualisation de l'une des manières suivantes:

a) localiser et éditer le fichier source incriminé pour forcer sa recompilation (par exemple, ajouter une ligne fictive, sauvegarder, la supprimer, enregistrer à nouveau),
b) faire un build propre (parfois fonctionnera, parfois ne fonctionnera pas),
c) en désactivant "Compile on save" (non recommandé, car cela peut rendre l’utilisation de IDE un PITA royal), ou
d) supprimez simplement le cache NetBeans à la main, forçant la recompilation.

Pour savoir comment supprimer le cache:

Si vous utilisez une ancienne version de NetBeans:

  • supprimez tout ce qui concerne votre projet dans .netbeans/6.9/var/cache/index/ (remplacez 6.9 par votre version).

Si vous en utilisez un plus récent:

  • supprimez tout ce qui concerne votre projet dans AppData/Local/NetBeans/Cache/8.1/index/ (remplacez 8.1 par votre version).

Les chemins peuvent varier un peu, par exemple. sur différentes plates-formes, mais l'idée est toujours la même.

23
kommradHomer

J'ai également eu la même erreur et j'ai fait la construction propre et cela a fonctionné.

5
UVM

Ajoutez Selenium-server-standalone-3.4.0.jar. Cela fonctionne pour moi. Lien de téléchargement

1

Revérifiez les déclarations de paquet dans toutes vos classes!

Ce problème a été observé dans NetBeans lorsque la déclaration du package dans l'une des classes du package fait référence à un package inexistant ou incorrect. NetBeans normalement détecte et met en surbrillance cette erreur, mais il est connu pour échouer et signaler de manière trompeuse le paquet comme étant exempt d’erreurs lorsque ce n’est pas le cas.

0
IqbalHamid

Désactivez le déploiement lors de l'enregistrement dans l'écran Propriétés/Exécution du projet. C'est ce qui a fonctionné pour moi finalement. Pourquoi NetBeans a-t-il échoué, cela me dépasse.

Remarque: j'ai pu compiler le fichier pour lequel il se plaignait à l'aide d'un clic droit dans NetBeans. Apparemment, ce n’était pas vraiment la compilation lorsque j’utilisais Build & Compile, car cela ne donnait aucune erreur. Mais ensuite, les erreurs se sont déplacées dans un autre fichier de classe Java. Je ne pouvais pas compiler à ce moment car il était grisé. J'ai également essayé de supprimer les répertoires build et dist dans mes fichiers de projet NetBeans mais cela n'a pas aidé non plus.

0
mikato

Organisez votre code en tant que module maven . Une fois terminé, lancez la commande depuis le terminal.
$mvn installl
pour vérifier si votre code est correct.
Enfin, importez le projet dans Netbeans ou dans Eclipse en tant que projet maven.

0
Enrico Giurin

changer le paquet de classes, vos fichiers sont probablement dans le mauvais paquet, m'est arrivé quand j'ai copié le code d'un ami, c'était le paquet par défaut et le mien était un autre, par conséquent les netbeans ne pouvaient pas compiler à cause de cela.

0
Kleyton

J'ai eu le même problème avec l'un de mes projets netbeans.

Vérifiez si vous avez correctement placé le nom du paquet sur toutes les classes. J'ai reçu le même message d'erreur parce que j'ai oublié de mettre le nom du paquetage d'une classe donnée (qui a été copié d'un autre projet).

0
chandima

J'ai eu le même problème. Mon erreur était l'emballage. Donc, je vous suggère de vérifier d'abord le nom du paquet et si la classe est dans le bon paquet.

0
Meluleki Dube

J'ai eu ce problème avec NetBeans 8.0.1. Messages concernant un problème dans la classe supprimée du projet. Supprimer les ~/.netbeans ne fonctionnait pas. Aussi, j'ai cherché N'IMPORTE QUELLE référence à la classe supprimée dans TOUS mes projets, rien n'a été trouvé. J'ai supprimé les classes de construction, tout. Ensuite, lorsque j'ai redémarré Netbeans, compilez et affiche comme par magie le message dans Run et dans la classe compilée mère. J'ai essayé de décocher la case "Compiler à la sauvegarde" solution de Dime, et fonctionne, mais ce n'est pas pratique . Enfin, ma solution était éditer et forcer la recompilation de la classe mère. De cette manière, la nouvelle classe .class ne contient pas le message et Run fonctionne correctement.

0
Rogelio

Il suffit de vérifier l'emballage, la réponse la plus simple que je puisse donner est que votre paquet a été mal étiqueté (au sein d'une classe).

En outre, vous pouvez avoir des personnages étranges. Essayez de purger le code dans un bloc-notes (ou Gedit), puis de le coller dans une classe nouvellement créée avec votre IDE.

0
Damir Olejar

Si vous utilisez Netbeans, essayez d’appuyer sur le bouton Nettoyer et construire, laissez-le faire et essayez à nouveau. Travaillé pour moi!

0
user2822399