intellij idea-エラー:Java:無効なソースリリース1.9


129

JSQLパーサークラスを実行しようとしていますが、を取得していError: java: invalid source release 1.9ます。

私はこの答えに従っみました。「ファイル」>「ビルド、実行、デプロイメント」>「Javaコンパイラ」>「プロジェクトバイトコードバージョン:1.8」を変更しました。ただし、モジュールの言語レベルとプロジェクトの言語レベルを1.8に変更することはできません。そのためのオプションがないからです。以下でも同じエラーが発生します。

エラー ここに画像の説明を入力してください

コード

package cs4321.project2;

import java.io.FileReader;
import net.sf.jsqlparser.parser.CCJSqlParser;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.Select;

public class Parser {
    private static final String queriesFile = "resources/input/queries.sql";

    public static void main(String[] args) {
        try {
            CCJSqlParser parser = new CCJSqlParser(new FileReader(queriesFile));
            Statement statement;
            while ((statement = parser.Statement()) != null) {
                System.out.println("Read statement: " + statement);
                Select select = (Select) statement;
                System.out.println("Select body is " + select.getSelectBody());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred during parsing");
            e.printStackTrace();
        }
    }
}

intellijのバージョンは何ですか?
soorapadman 2017

@soorapadman intellij idea 2017.2.2
Alex

それはうまくいくはずです。Mavenプロジェクトを使用していますか?
soorapadman 2017

ただし、モジュールの言語レベルとプロジェクトの言語レベルを1.8に変更することはできません。そのためのオプションがないからです。どうしてこんなことに?そうしようとすると、どのようなエラーが発生しますか?また1.9はJavaバージョンのようです。あなたのマシン/ intelliJでJava-9が設定されていますか?
ナマン2017

回答:


324

プロジェクトを選択し、[ファイル]> [ProjectStructure]> [ProjectSettings]> [モジュール]> [ソース]言語レベルを9に設定している可能性があります。

スクリーンショット

それを8(または必要なもの)に変更するだけで、準備が整います。

また、[プロジェクトの設定]> [プロジェクト]で、上記と同じ言語レベル設定を確認してください

ここに画像の説明を入力してください


1
ああ、やっとプロジェクトの言語レベルの意味がわかりました。ありがとう
ダニエルダイ

1
また、上の画像では、モジュールセクションに移動することを忘れないでください
John Peters

1
pom.xml <java.version> 1.8 </java.version>での変更の改善。そうでない場合、intellijへの再インポート時に設定がリセットされる可能性があります
Rakesh Yembaram

21

プロジェクトのバイトコードのバージョンが正しくないために問題が発生する場合があります。

だからそれを確認してください:ファイル->設定->ビルド、実行、配備->コンパイラ-> Javaコンパイラ->プロジェクトのバイトコードバージョンとその値を8に設定

例


1
それは、プロジェクト設定->モジュール->言語レベル
Kemal Atik

1
これは、受け入れられたものに対する素晴らしい補足的な答えです。
ダルトン

15

同じ問題がありました。答えがあります:

  • 1. CTRL + ALT + SHIFT + S ;
    1. 次に、「モジュール」に移動します。
    2. " 依存 ;
    3. モジュールSDK」を変更します

とった!今、あなたはJava 9を持っています!



3

Mavenプロジェクトを使用する場合。

pom.xmlファイルを確認する

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>9</java.version>
</properties>

マシンにjdk 8がインストールされている場合は、java.versionプロパティをから9に変更します8


2

同様の問題が発生しました。プロジェクトはJava 9を使用して開きましたが、すべてのモジュールとプロジェクトを1.8に戻した後でも、エラーが発生しました。

Gradleにプロジェクトを更新するように強制する必要があり、その後すべてが期待どおりに実行されました。


1

または、プロジェクト設定を介して:

  • プロジェクト設定
  • 事業
  • プロジェクトの言語レベル(ニーズに合わせて設定)

ビルドの設定方法によっては、これが適切な方法かもしれません。


1

プロジェクト構造、プロジェクトSDK: 11以上にSDKを変更し、中のプロジェクトの言語レベル: 11に変更-ラムダパラメータのローカル変数の構文を


0

DeanMの解決策を試したが役に立たなかったこの問題に苦しんでいる人には、プロジェクトに設定したJDKのバージョンである、チェックする価値のある他の何かがあります。たとえば、プロジェクトにJDK 8u191を構成し、言語レベルを8よりも高く設定していると、このエラーが発生します。

この場合は、プロジェクトの責任者に質問することをお勧めします。ソースをコンパイルするには、JDKのどのバージョンが望ましいでしょう。


0

IntellijIdeaでも同じ問題が発生しました。プロジェクトを選択した後、[ファイル]> [ProjectStructure]> [ProjectSettings]> [モジュール]-> [オプション]に表示されていたソース-言語レベルが9に設定されています。

だから、私はそれを8に変更します。それでも私の問題は解決しませんでした。

主な問題はpom.xmlに関するものでした。pom.xmlファイルを再インポートしたところ、問題は解決しました。

したがって、pom.xmlファイルを変更するたびに、IDEAはプロジェクト構造を更新する必要があります。たとえば、いくつかの依存関係を追加した場合、IDEAはそれらをプロジェクトライブラリとして追加する必要があります。

「設定>ビルド、実行、デプロイメント>ビルドツール> Maven>インポート」で、「Mavenプロジェクトを自動的にインポート」を選択できます。これにより、pom.xmlが変更されたときに自動的に「再インポート」アクションが呼び出されます。

ここに画像の説明を入力してください


0

Gradle 私にも同じ問題があり、以前のソリューションで提供されたすべての設定を変更しても違いはありませんでした。私がbuild.gradleに行ってこの行を見つけて削除したよりも。

sourceCompatibility = '11'

そしてそれはうまくいった!:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.