IntelliJ IDE podaje błąd podczas używania Try-Catch z zasobami

Próbuję użyć JDK 7 's" try-catch with resources " oświadczenie; IntelliJ podkreśla moją linię zasobów, mówiąc

Try-with-resources nie są obsługiwane na tym poziomie języka.

Kiedy próbuję skompilować, dostaję:

Java: try-with-resources nie jest obsługiwane w źródle 1.6 (użyj źródła 7 lub wyższego, aby włączyć try-with-resources)

Sprawdziłem, że try-with-resources jest włączone dla mojego obecnego projektu i że mój projekt jest korzystanie z JDK 7 (Biblioteka: C:\Program Files\Java\jdk1.7.0_11). Jakieś pomysły? Nie mogę rozgryźć, jaką opcję zmienić (jeśli w ogóle o to chodzi).

Author: ROMANIA_engineer, 2013-01-22

5 answers

Kliknij menu Plik, Otwórz strukturę projektu, a następnie w "Ustawieniach "powinno być "projekt". Na tej karcie pojawi się opcja ustawień SDK, która określa wersję językową, której chcesz użyć.

Zobacz strona pomocy JetBrains Aby uzyskać więcej szczegółów ("poziom języka projektu").

 50
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-03 15:17:37

Jedyny sposób, aby ten błąd wystąpił, to jeśli poziom języka Twojego modułu nie jest ustawiony na 1.7+. Należy to ustawić w Ustawieniach projektu/modułu IntelliJ, pliku pom.xml projektu lub obu tych ustawień.

IntelliJ

Tutaj wpisz opis obrazka

Maven

<properties>
  <maven.compiler.source>1.7</maven.compiler.source>
  <maven.compiler.target>1.7</maven.compiler.target>

Ustawienia modułu mogą zastąpić ustawienia projektu; jeśli ustawienie to na poziomie projektu i masz konkretny problem w module, sprawdź również ustawienia modułu.

 48
Author: Dave Newton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 17:02:33

Sprawdź też swój kod. Mogłeś przypadkowo zrobić coś takiego:

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

Zamiast

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

Łatwy błąd do popełnienia, gdy nie zamierzasz używać wyniku swojego zamkniętego zasobu. jednak będzie miał ten mylący błąd.

 5
Author: Nicholas DiPiazza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 02:38:50

Poza wspomnianymi instrukcjami musiałem również określić poziom języka dla każdego modułu. Plik - > Struktura Projektu - > Moduły

 2
Author: Ihor Tsebriy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 14:09:25

Obrazkowa reprezentacja ustawień modułu. Tutaj wpisz opis obrazka

 0
Author: CodeShadow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-16 03:04:33