前提
バージョン情報
項目名 | バージョン |
---|---|
OS | Windows10 Pro |
Java(cmd) | 1.7.0_80 |
Javac(cmd) | 1.7.0_80 |
Eclipse | Preiades 2022-06 Ultimate |
コンパイル準拠レベル | 1.5 |
ant | 1.8 |
Java(Eclipse) | 11.0.15 ← 1.7にしたい |
Javac(Eclipse) | 11.0.15 ← 1.7にしたい |
実現したいこと Java ver1.7でのEclipseによるコンパイル
ある案件でEclipseをインストールしたところ、Eclipseでコンパイルするときにだけコンパイルエラーが発生してします。
- パッケージエクスプローラとエディタ上ではコンパイルエラーが発生していません。
おそらくこちらが想定しているコンパイラとEclipseが使用するコンパイラでバージョンが異なることが原因と思われるのですが、対応方法がわからない状況です。
最終的には、Java ver1.7.0_80 を使用してEclipseでコンパイルしたいです。
- Eclipse Indigoまで下げれば、コンパイルできることはわかっています。
- eclipse.ini のバージョンに依存していることがわかりましたが、11→7に下げるとEclipseが起動しなくなった。
原因(推定)
URLのリンク先と同じ事象であることを特定しました。
eclipseがコンパイルで使用しているJavaのバージョンが、案件のプロジェクトのバージョンで対応しきれていないよう。
eclipse の 準拠レベルを1.5→1.7 に上げるわけにはいかない(ant build.xmlが1.5のため) ので、eclipseの設定でどうにかしたい。。。
cmd
1javac -source 5 -target 5 Sample.java 2警告:[options] ブートストラップ・クラスパスが-source 5と一緒に設定されていません 3エラー: ソース・オプション5は現在サポートされていません。6以降を使用してください。 4エラー: ターゲット・オプション1.5は現在サポートされていません。1.6以降を使用してください。
https://gist.github.com/suzukitadashi/5173abb841d49517bc590a8d702cc5da
確認したこと
- JAVA_HOMEが Java ver1.7.0_80 に向いているか?
- Eclipseの実行構成 > JRE が Java ver1.7.0_80 になっているか?
- 設定 > Java > コンパイラ準拠レベルは適切か?
- Javaのビルドパスに使用するライブラリなどは1.7になっているか?
発生している問題・エラーメッセージ
到達不可なcatchでエラーが出ていますが、Indigo では問題ないです。
- せめて警告にしたい。。。
例外**** は対応するtry文の本体ではスローされません
補足情報(FW/ツールのバージョンなど)
下記を改善すべきなのはわかっていますが、技術的負債が多いプロジェクトのため、どうしようもないので、コンパイラのバージョンを下げることで対応したいです。。。
- 到達不可なcatchでエラーをそのままにするな
- Javaのバージョンを上げるべき