🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Q&A

解決済

1回答

2655閲覧

build.gradleのsourceCompatibility/targetCompatibilityが効かない

yumetodo

総合スコア5852

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

0グッド

0クリップ

投稿2020/11/22 09:31

java

1hashmap = new HashMap<>()

のような左辺から右辺のジェネリクスの引数を推論する機能がJava1.7からあるかと思います。

Java1.8環境なので当然使えるだろうとおもって使ったのですが

/home/runner/work/buildcraft-addon-hello-world/buildcraft-addon-hello-world/build/sources/java/com/example/examplemod/NonReversedShapedRecipe.java:40: error: diamond operator is not supported in -source 1.6 > Task :compileJava FAILED for (hashmap = new HashMap<>(); i < params.length; i += 2) { ^ (use -source 7 or higher to enable diamond operator) 1 error

となります。なんと-source 1.6がjavacに渡されていると言うのです。

https://github.com/yumetodo/buildcraft-addon-hello-world/runs/1437861047

しかし待ってください。私はbuild.gradleでこれ以上なく明確に1.8と指定しています。

gradle

1sourceCompatibility = 1.8 2targetCompatibility = 1.8

https://github.com/yumetodo/buildcraft-addon-hello-world/blob/2e8b02aebd538c24c1c9554eb128a0f0724cfff2/build.gradle#L27-L28

にもかかわらずなぜ反映されないのでしょうか?


もう一つ不思議なことがあります。じつは手元でビルドしていたとき、はじめJAVA_HOMEがJDK15だったということがあり、そのとき同じエラーが出ていました。そこでJAVA_HOMEC:\Program Files\Java\jdk1.8.0_231のように変更しました。するとビルドが通ったのです。これはCIでは落ちている86eec7fの時の話です。しかし一晩開けJavaのソースをリファクタリング(2e8b02a, 96d4186, 3e6a8e0程度の小規模なもの)を終え、ビルドを走らせるとまた上記のエラーが発生したのです。私は夢でも見ていたとでも言うのでしょうか?

環境

Windows 10

開発はVSCode上で行っている

>where javac C:\Program Files\Amazon Corretto\jdk15.0.1_9\bin\javac.exe C:\Program Files\Java\jdk1.8.0_231\bin\javac.exe >echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_231

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

gradle

1tasks.withType(JavaCompile) { 2 options.encoding = "UTF-8" 3 sourceCompatibility = 1.8 4 targetCompatibility = 1.8 5}

のように指定することでとりあえず回避できたように見えます。

https://github.com/yumetodo/buildcraft-addon-hello-world/pull/1

java - Gradle sourceCompatibility has no effect to subprojects - Stack Overflow

投稿2020/12/11 10:55

yumetodo

総合スコア5852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問