14
9

More than 5 years have passed since last update.

MavenでのCOMPILATION ERRORを解決

Posted at

eclipseでプロジェクトをビルドした際に、Mavenのこんなエラーが出て半日ほど躓いたので、解決法やチェックポイントを残す。

環境

  • Windows 7
  • JDK8
  • eclipse 4.6 neon

COMPILATION ERROR

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE    rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

結論から言うと、環境構築がちゃんとできてなかった。無念。
うちらのstack overflowでも同様の質問が多数あるので、みんな通る道のようである。

原因を探しているうちにいくつかのチェックポイントがあることがわかった。

  1. JAVA_HOME¥binへのパスが通っているか
  2. JAVA_HOME¥binにjavac.exeが存在するか
  3. JDKとMavenのバージョンが合っているか

というもの。
オレの場合は複合的な原因だった。残念。

JAVA_HOME¥binへのパスが通っているか

最近のJDKはインストールすると勝手にパスが通ってくれる。ここに。

C:¥ProgramData¥Oracle¥Java¥javapath

コマンドプロントで

java -version

と打つとjavaのバージョンが表示されるのでパスが通ってると思い込んでいた。
でも通っているのは、java.exe, javaw.exe, javaws.exeのシンボリックリンクに対してだった。
ちょっと違ってた。

なので、まずは環境変数JAVA_HOMEの設定と、JAVA_HOME¥binをPATHに追加したかを確認しよう。

JAVA_HOME¥binにjavac.exeが存在するか

無かった。
手順書がおかしかったんだと思う。
JDKとパブリックJREが同じインストールディレクトリになっていたせいで、javac.exeが失われていた。

JAVA_HOME¥binをPATHに追加したあとはこれを確認しよう。

javac -version

JDKとMavenのバージョンが合っているか

eclipse 4.6 neonとJDK8の組み合わせなら特に問題はない。
上記のJAVA_HOME¥binの件がまだ分かってなかった時にJDKのバージョンも6に下げた。
eclipse 4.6 neonに対しJDK6だとCOMPILATION ERRORになる。

Maven Releases History

リリースヒストリーであるが、
Mavenバージョンと必要なJDKバージョンの組み合わせ表にもなっている。
この表を見つけた時は感動した。

というわけで、インストールしているMavenとJDKのバージョンが合っているかを確認しよう。
Maven buildの構成時に指定するMavenのバージョンとJREのバージョンが合っているかも確認しよう。

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9