42

JDK 7の "try-catch with resources"ステートメントを使用しようとしています。 IntelliJは私のリソースラインを強調して、リソースでTry-Catchを使用すると、IntelliJ IDEでエラーが発生します

を試してみてください。この言語レベルではリソースは試していません。私がコンパイルしようと

、私が取得:

のjava:トライで-リソースは、try-と資源を有効にするために 1.6 -source(使用-source 7以降でサポートされていません。 )

私の現在のプロジェクトでtry-with-resourcesが有効になっていて、プロジェクトがJDK 7(ライブラリ:C:\ Program Files \ Java \ jdk1.7.0_11)を使用していることを確認しました。何か案は?私はどのようなオプションを変更するかを理解することはできません(それが問題であっても)。

+2

jdkと言語レベルの両方が7に設定されていることをファイル - >保護構造(またはCtrl-Alt-Shift s)で確認してください。 –

+0

ありがとうございました。 – Yankee

答えて

50

[ファイル]メニューの[プロジェクトの構造]を開き、[設定]の下に[プロジェクト]が表示されるようにします。そのタブには、使用する言語バージョンを指定するSDK設定オプションがあります。

詳しくは、JetBrains help page(「プロジェクト言語レベル」)を参照してください。

47

このエラーが発生する唯一の方法は、モジュールの言語レベルが1.7+に設定されていない場合、またはソースレベルが1.7+であることを示していないMavenプロジェクトの場合です。モジュールの設定は、プロジェクト設定を上書きできること

enter image description here

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

注意。これをプロジェクトレベルで設定し、モジュールに特定の問題がある場合は、モジュールの言語レベルの設定も確認してください。

+0

これは、AS 0.3.4以上ではもはや有効ではありません。 – Adam

+1

@Adam Android Studio? Intellijベータに基づいたもの?特に具体的でないものは何ですか?誰もAndroidの開発について話していましたが、実用的な情報を提供する方が理にかなっていませんか? –

+0

これが私がこの問題を抱えていた理由です。 – conorgriffin

0

モジュール設定の図式表現。 enter image description here

1

また、モジュールごとに言語レベルも指定する必要がありました。ファイル - >プロジェクト構造 - >モジュール

+0

に設定されています。 –

1

また、コードを確認してください。あなたは開閉可能なリソースの結果を使用して予定がないときにする代わりに

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

簡単に間違いの

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

:あなたが誤ってこのような何かをしたかもしれません。まだそれは誤解を招くエラーを持っています。

関連する問題