Partage
  • Partager sur Facebook
  • Partager sur Twitter

try-with-resources is not supported in -source 1.5

Sujet résolu
Anonyme
    20 avril 2017 à 16:22:05

    Bonjour,

    J'ai importé un projet Maven duquel je cherche à créer un .jar

    La classe principale du projet contient un try catch paramétré comme suit

    try (BufferedWriter writer = new BufferedWriter(new FileWriter(output.getPath()))) {
                writer.write(script, 0, script.length());
              } catch (IOException x) {
                System.err.format("IOException: %s%n", x);
              }



    En faisant un mvn clean install, j'obtient l'erreur suivante: 

    Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project lambda-java-example: Compilation failure

    [ERROR] /C:/Users/ss/workspace/java-project/src/main/java/MainClass.java:[316,9] try-with-resources is not supported in -source 1.5

    [ERROR] (use -source 7 or higher to enable try-with-resources) 


    J'ai essayé de vérifier ma varialble JAVA_HOME et elle pointe sur le jdk pas le jre, j'ai vérifié aussi la dépendance du projet au jdk, de forcer dans le .settings\org.eclipse.jdt.core.prefs la version 1.8... bref j'ai tenté pas mal d emanipulations en vain et là je suis totalement bloquée.
    Le problème avec la modification du .settings\org.eclipse.jdt.core.prefs est uq eà chaque fois que je fais un update project du Maven, la valeur est remise à 1.5

    Voici mon pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>doc-examples</groupId>
    	<artifactId>lambda-java-example</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name> lambda-java-example</name>
    	<dependencies>
    		<dependency>
    			<groupId>com.amazonaws</groupId>
    			<artifactId>aws-lambda-java-core</artifactId>
    			<version>1.1.0</version>
    		</dependency>
    	</dependencies>
    	<build>
    		<plugins>
    			<plugin>
    				<inherited>true</inherited>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-shade-plugin</artifactId>
    				<version>2.3</version>
    			</plugin>
    		</plugins>
    	</build>
    </project>



    quelqu'un saurait comment faire pour corriger cette erreur? 
    Merci d'avance!!  

    -
    Edité par Anonyme 20 avril 2017 à 16:27:23

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2017 à 16:52:23

      Bonjour.

      Il faut changer la version de Java dans Maven.
      Dans le pom.xml par exemple : https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

      <project>
        [...]
        <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
        [...]
      </project>
      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
      Anonyme
        20 avril 2017 à 17:34:00

        Merci beaucoup!
        J'ai enfin pu avancer sur le problème. Maintenant, en faisantun nouveau mvn clean install, j'ai une erreur du type:
        [ERROR] COMPILATION ERROR : 
        [INFO] -------------------------------------------------------------
        [ERROR] /C:/Users/ss/workspace/java-project/src/main/java/MainCLass.java:[17,17] package org.jsoup does not exist 

        Pourtant, j'ai bien ajouté la classe au build path du projet. Il me semble que Maven n'arrive pas à reconnaitre la class. Est-ce qu'il s'agit d'un problème de dépendance?

        -
        Edité par Anonyme 20 avril 2017 à 17:38:20

        • Partager sur Facebook
        • Partager sur Twitter
          20 avril 2017 à 17:38:22

          Toute la configuration doit se faire dans le pom.xml.
          Tu n'as pas à toucher à la configuration de l'IDE, car celui-ci se configuration automatiquement en fonction de Maven.

          Ici ton erreur c'est surement un problème de dépendance manquante.

          • Partager sur Facebook
          • Partager sur Twitter
          Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
          Anonyme
            21 avril 2017 à 11:10:13

            Bonjour,

            Merci pour ta réponse.

            J'ai ajouté la dépendance dans le pom.xml comme suit

            <dependency>
            			<groupId>org.jsoup</groupId>
            			<artifactId>jsoup</artifactId>
            			<version>1.7.2</version>
            			<scope>test</scope>
            		</dependency>

            et j'ai fait un maven/Update Project de mon projet. J'ai aussi enlevé le jar du classPath mais le même problème persiste... 
            J'ai aussi essayé avec la verison 1.7.2 du jar et une version plus récente 1.10.2

            Après, j'ai trouvé la solution, au cas où quelqu'un pourrait s'en servir: le problème est dans la ligne 

            <scope>test</scope>

            Jsoup est utilisé dans main et test, il faut donc enlevé cette ligne pour qu'il soit visible dans les 2

            -
            Edité par Anonyme 21 avril 2017 à 11:42:07

            • Partager sur Facebook
            • Partager sur Twitter

            try-with-resources is not supported in -source 1.5

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown