IntelliJ IDE génère des erreurs lors de l’utilisation de Try-Catch avec des ressources

Je tente d’utiliser l’instruction “try-catch with resources” de JDK 7; IntelliJ met en évidence ma ligne de ressources, en disant

Les essais avec ressources ne sont pas pris en charge à ce niveau de langue.

Quand j’essaie de comstackr, j’obtiens:

java: try-with-resources n’est pas pris en charge dans -source 1.6 (utilisez -source 7 ou plus pour activer try-with-resources)

J’ai vérifié que try-with-resources est activé pour mon projet actuel et que mon projet utilise JDK 7 (Bibliothèque: C: \ Program Files \ Java \ jdk1.7.0_11). Des idées? Je ne peux pas savoir quelle option changer (si c’est même le problème).

Cliquez sur le menu Fichier, ouvrez Structure du projet, puis sous “Paramètres”, il devrait y avoir “Projet”. Dans cet onglet, il y aura une option Paramètres SDK qui spécifie la version de langue que vous souhaitez utiliser.

Consultez la page d’aide JetBrains pour plus de détails (“Niveau de langue du projet”).

La seule façon dont cette erreur se produira est si le niveau de langue de votre module n’est pas défini sur 1.7+. Cela doit être défini dans vos parameters de projet / module IntelliJ, le fichier pom.xml du projet ou les deux.

IntelliJ

entrer la description de l'image ici

Maven

  1.7 1.7 

Les parameters du module peuvent remplacer les parameters du projet; Si vous définissez cela au niveau du projet et que vous rencontrez un problème spécifique dans un module, vérifiez également les parameters du module.

Vérifiez également votre code. Vous avez peut-être accidentellement fait quelque chose comme ceci:

 try (HttpClients.createMinimal().execute(new HttpGet(Ssortingng.format( "http://127.0.0.1:%s/extra/LifecycleServlet?action=shutdown", runningPort)))) { 

au lieu de

 try (CloseableHttpResponse response = HttpClients.createMinimal().execute(new HttpGet(Ssortingng.format( "http://127.0.0.1:%s/extra/LifecycleServlet?action=shutdown", runningPort)))) { 

erreur facile à faire lorsque vous n’utilisez pas le résultat de votre ressource pouvant être fermée. pourtant, il aura cette erreur trompeuse.

Outre les instructions mentionnées, je devais également spécifier le niveau de langue par module. Fichier -> Structure du projet -> Modules

Représentation graphique des parameters du module. entrer la description de l'image ici