Salut, j'ai essayé de faire tester mon code sur le problème Croissance (Niveau 3, Qualifications 2014), mais je rencontre une erreur d’exécution à chaque fois. J'ai testé sur le sujet 1 des qualifications de la même année, et le problème, est le même. L'erreur indiquée est : Error: Could not find or load main class tmpM4pCPk7mtM. J'utilise pourtant bien le code à compléter, en ayant bien renommé la class croissance en class main (cela provoquait une erreur de compilation).
Erreur de compilation en java
Bonjour,
Le problème devrait être résolu.
Merci.
Je viens de réessayer: l'erreur n'est plus la même, mais cela ne fonctionne toujours pas. Sur le problème 1 des qualifications 2014, l'erreur est :
1 2 3 | Exception in thread "main" java.lang.NullPointerException at tmpZA6Qk6Rosm.read_deltas(tmpZA6Qk6Rosm.java:34) at tmpZA6Qk6Rosm.main(tmpZA6Qk6Rosm.java:51) |
Sur le problème 3:
1 2 3 | Exception in thread "main" java.lang.NullPointerException at tmpQEIvM4MFOU.read_deltas(tmpQEIvM4MFOU.java:45) at tmpQEIvM4MFOU.main(tmpQEIvM4MFOU.java:62) |
Si tu compares les deux erreurs, elles surviennent toujours à la même ligne de la fonction de lecture:
1 | scanner.useDelimiter("\\n");current_char = scanner.findWithinHorizon(".", 1).charAt(0); |
Tu peux temporairement changer le bordel fait avec les scanners dans la fonction "read_deltas' (les horizons etc...) avec un simple int num = scanner.nextInt(); Le template généré automatiquement devait présenter quelques erreurs.
Edit: Pour être plus précis
1 2 3 4 5 6 7 8 9 10 | int num = 0; char current_char = '\000'; scanner.useDelimiter("\\n");current_char = scanner.findWithinHorizon(".", 1).charAt(0); boolean ok = is_number(current_char); while (ok) { num = num * 10 + current_char - '0'; scanner.useDelimiter("\\n");current_char = scanner.findWithinHorizon(".", 1).charAt(0); ok = is_number(current_char); } |
remplacé par
1 | int num = scanner.nextInt(); |
Ok, effectivement ça marche comme ça. Merci!
(Désolé pour la mise en page, j'arrive pas à l'améliorer)
Bon j'ai essayé sur l'exercice 4 (Hâte), et là ça me donne de nouveau des grosses erreurs de compilation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | javac 1.7.0_91 /tmp/tmpun0ScRsHW1.java:42: error: class, interface, or enum expected public static boolean is_number(char c) ^ /tmp/tmpun0ScRsHW1.java:45: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:47: error: class, interface, or enum expected public static int[] read_deltas(int len) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:53: error: class, interface, or enum expected result[index] = num; ^ /tmp/tmpun0ScRsHW1.java:54: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:56: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:59: error: class, interface, or enum expected public static void main(String args[]) ^ /tmp/tmpun0ScRsHW1.java:62: error: class, interface, or enum expected if (scanner.hasNext("^-")){ ^ /tmp/tmpun0ScRsHW1.java:63: error: class, interface, or enum expected scanner.next("^-"); len = -scanner.nextInt(); ^ /tmp/tmpun0ScRsHW1.java:64: error: class, interface, or enum expected }else{ ^ /tmp/tmpun0ScRsHW1.java:65: error: class, interface, or enum expected len = scanner.nextInt();} ^ /tmp/tmpun0ScRsHW1.java:67: error: class, interface, or enum expected int[] deltas = read_deltas(len); ^ /tmp/tmpun0ScRsHW1.java:68: error: class, interface, or enum expected hate(deltas, len); ^ /tmp/tmpun0ScRsHW1.java:69: error: class, interface, or enum expected } ^ 17 errors /var/prologin/check/Compile:61: recipe for target 'lang-java' failed Erreur de compilation |
Pour la mise en page, essaye de mettre des balises < code > autour de tout ça, et retourne à la ligne avec des < br > .
Tu peux également ajouter de l'indentation avec "& nbsp;" (tout attaché). J'ai l'impression que c'est encore un problème de code généré, je vais essayer de voir ce qu'il se passe.
Edit: En fait non, le problème vient de ton code, et l'erreur seule ne va pas m'aider beaucoup. Utilise un site pour copier coller ton code (pastebin, ideone) et donne moi le lien pour que je vérifie ce que tu as fait. Quand beaucoup d'erreurs surviennent à de différents endroits, c'est souvent dû à une erreur de syntaxe (une parenthèse/crochet/accolade manquant, autres....). Si tu n'as pas d'outils pour highlight les parenthèses par paires, je te conseille d'en trouver un. Si tu en as un, check un peu pour voir si ça ne viendrait pas de là.
T'avais raison c'était une accolade qui manquait, merci! Vu que j'avais eu des problèmes sur les autres que j'avais fait, j'avais pas trop cherché à regarder..
Bon, les mecs, petit cours de Markdown…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | javac 1.7.0_91 /tmp/tmpun0ScRsHW1.java:42: error: class, interface, or enum expected public static boolean is_number(char c) ^ /tmp/tmpun0ScRsHW1.java:45: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:47: error: class, interface, or enum expected public static int[] read_deltas(int len) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:50: error: class, interface, or enum expected for (int index = 0 ; index < len; index++) ^ /tmp/tmpun0ScRsHW1.java:53: error: class, interface, or enum expected result[index] = num; ^ /tmp/tmpun0ScRsHW1.java:54: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:56: error: class, interface, or enum expected } ^ /tmp/tmpun0ScRsHW1.java:59: error: class, interface, or enum expected public static void main(String args[]) ^ /tmp/tmpun0ScRsHW1.java:62: error: class, interface, or enum expected if (scanner.hasNext("^-")){ ^ /tmp/tmpun0ScRsHW1.java:63: error: class, interface, or enum expected scanner.next("^-"); len = -scanner.nextInt(); ^ /tmp/tmpun0ScRsHW1.java:64: error: class, interface, or enum expected }else{ ^ /tmp/tmpun0ScRsHW1.java:65: error: class, interface, or enum expected len = scanner.nextInt();} ^ /tmp/tmpun0ScRsHW1.java:67: error: class, interface, or enum expected int[] deltas = read_deltas(len); ^ /tmp/tmpun0ScRsHW1.java:68: error: class, interface, or enum expected hate(deltas, len); ^ /tmp/tmpun0ScRsHW1.java:69: error: class, interface, or enum expected } ^ 17 errors /var/prologin/check/Compile:61: recipe for target 'lang-java' failed Erreur de compilation |
Il faut utiliser l’accent grave « ` ». Un ou deux pour un formatage au sein d’un paragraphe
, en mettre trois autour d’un bloc pour qu’il soit en style « préformaté ». Mettre le nom du langage à côté des « ``` » ouvrants s’il y a lieu. Et alex3er, avec tout le respect que je te dois, éviter les balises HTML, c’est franchement trop moche.
D'accord :)