スポンサーリンク
EclipseのMavenプラグイン(m2e)からcompiler:compileを実行すると、次のようなエラーが表示されることがあります。
Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required).
このエラーの回避方法についてメモしておきます。環境はMaven 3.0.2 + m2e 1.0.200.20111228-1245です。OSはWindows 7 64bitです。
目次
スポンサーリンク
エラー文の全体
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 408 source files to ...\target\classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] Unable to locate the Javac Compiler in: C:\Program Files\Java\jre7\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable. [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.649s [INFO] Finished at: ... [INFO] Final Memory: 10M/490M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-cli) on project ...: Compilation failure [ERROR] Unable to locate the Javac Compiler in: [ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar [ERROR] Please ensure you are using JDK 1.4 or above and [ERROR] not a JRE (the com.sun.tools.javac.Main class is required). [ERROR] In most cases you can change the location of your Java [ERROR] installation by setting the JAVA_HOME environment variable. [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
原因
原因は、Mavenが参照するjavaw.exeとしてJRE付属のものを指定してしまっていることです。
正しくは、JDK付属のものを指定しなければなりません。
チェック
実際にMavenが利用している「JAVA_HOME」がJDKを指しているかを確認するには「mvn -version」を実行すればOKです(Eclipseでの確認方法)。
ここで「Java home: 」の行にJDKへのパスが表示されていればOKなのですが、今回のエラーが表示された場合、ここがJREへのパスになっていると思われます。
対策
「Window>Preference>Java>Installed JREs」にある「Add...」から「Standard VM」を選択して「Next」をクリック。
ここで「JRE home」の横にある「Directory...」ボタンからJDKのフォルダ(例:jdk1.7.0_05)を指定します。
これで「Finish」をクリックすると、「Installed JREs」にJDKのJREが追加されるので、それにチェックを入れて、デフォルトにします。
以上で作業終了です。こうすることで、上手く行きました。もっと上手にやる方法があればよいのですが。。。
うまくいかなかった対策1:eclipse.iniの変更
eclipse.exeと同じフォルダにある「eclipse.ini」を編集します。
編集前は、こんな感じになっていると思います。
eclipse.ini
-startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502 -product org.eclipse.epp.package.java.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx384m
この「-vmargs」の行の一つ上に
-vm C:\Program Files\Java\jdk1.7.0_05\bin\javaw.exe
という2行を追加します。これを追加してからeclipse.exeを再起動します。
しかし、eclipseの実行されるJREは変更されるものの、Mavenが参照するJREに変化はありませんでした。
うまくいかなかった対策2:JAVA_HOMEの設定
環境変数「JAVA_HOME」を設定すればいいだろう、と素直に思うのですが、実はMaven(m2e)は環境変数JAVA_HOMEの設定を参照してくれるわけではないようです(参考資料参照)。
参考
スポンサーリンク
コメント(0)
新しいコメントを投稿
|HOME|
『Maven+Eclipse(m2e)上で「mvn -version」の結果を表示する方法』 OLD >>
スポンサーリンク