Erreur java

Erreur java

par Planchot Maël,
Nombre de réponses : 3

Bonjour,

J'ai la même erreur sur les projets a évalué que sur mon projet. C'est une erreur java, ce qui semble étrange car on n'est pas sensé y toucher(ce que j'avais respecter).
Je met le message d'erreur:

make

javacc -OUTPUT_DIRECTORY=src/fr/insarouen/iti/compilation/lightgrep/analyseurs/ src/fr/insarouen/iti/compilation/lightgrep/analyseurs/AnalyseurSyntaxique.jj

Java Compiler Compiler Version 5.0 (Parser Generator)

(type "javacc" with no arguments for help)

Reading from file src/fr/insarouen/iti/compilation/lightgrep/analyseurs/AnalyseurSyntaxique.jj . . .

File "TokenMgrError.java" does not exist.  Will create one.

File "ParseException.java" does not exist.  Will create one.

File "Token.java" does not exist.  Will create one.

File "SimpleCharStream.java" does not exist.  Will create one.

Parser generated successfully.

javac -d build/classes -cp build/classes -sourcepath src src/fr/insarouen/iti/compilation/lightgrep/analyseurs/AnalyseurSyntaxique.java

javac -d build/classes -cp build/classes -sourcepath src src/fr/insarouen/iti/compilation/lightgrep/automate/Automate.java

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

javac -d build/classes -cp build/classes -sourcepath src src/fr/insarouen/iti/compilation/lightgrep/automate/OutilsPourAutomate.java

javac -d build/classes -cp build/classes -sourcepath src src/fr/insarouen/iti/compilation/lightgrep/compilateur/AstEnAutomate.java

javac -d build/classes -cp build/classes -sourcepath src src/fr/insarouen/iti/compilation/lightgrep/expressionRationnelle/ExpressionRationnelle.java

src/fr/insarouen/iti/compilation/lightgrep/expressionRationnelle/Intervalle.java:11: error: class, interface, or enum expected

public record Intervalle(int debut, int fin) {

       ^

src/fr/insarouen/iti/compilation/lightgrep/expressionRationnelle/ExpressionRationnelle.java:107: error: cannot access Intervalle

    public List<Intervalle> presences(String chaine) {

                ^

  bad source file: src/fr/insarouen/iti/compilation/lightgrep/expressionRationnelle/Intervalle.java

    file does not contain class fr.insarouen.iti.compilation.lightgrep.expressionRationnelle.Intervalle

    Please remove or make sure it appears in the correct subdirectory of the sourcepath.

2 errors

make: *** [Makefile:38 : build/classes/fr/insarouen/iti/compilation/lightgrep/expressionRationnelle/ExpressionRationnelle.class] Erreur 1

En réponse à Planchot Maël

Re: Erreur java

par Delestre Nicolas,
Bonjour,
Le problème est que votre version du compilateur java (javac) est trop ancien, il ne connait pas les "record". Je crois (à vérifier) que les record sont apparus avec la version 14. Il vous faut donc au moins cette version. Personnellement j'utilise la version 19 pour le projet.
Pour information sur plusieurs distributions Linux (dont ubunutu) il est possible d'avoir plusieurs versions de java sur son système et de passer de l'une à l'autre gràce à la commande update-java-alternatives.
Cordialement.
En réponse à Delestre Nicolas

Re: Erreur java

par Planchot Maël,
Bonjour,
J'ai Java 19 pourtant:
java -version
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)
En réponse à Planchot Maël

Re: Erreur java

par Delestre Nicolas,
Bonjour,
La commande java permet de lancer la machine virtuelle, pas de compiler.
Pour compiler on utilise la commande javac. Faites un javac --version
Cordialement