Google App Engine をEclipseに何とか導入するの巻
最近、mac環境でずっとEclipseへの
Google App Engine導入に苦しんでたのだけど
やっとこさ成功したので記念メモ。
Eclipseへの導入はいっぱい参考資料があった
https://developers.google.com/eclipse/docs/download
https://developers.google.com/appengine/docs/java/tools/eclipse?hl=ja
http://www.mkyong.com/google-app-engine/google-app-engine-hello-world-example-using-eclipse/
その他日本語解説ページも多数
ちなみにEclipse4.2(juno)への導入の公式ドキュメントは
日本語はありませんが英語のドキュメントには存在しています。
https://developers.google.com/eclipse/docs/download
これら通りに行なって僕もGAE(GoogleAppEngine)を動かしてみるぞ−と息巻いていました。
最初は・・・。
困ってた症状:サンプルコードなのに動かない!?
ここから実際にプラグインを導入してサンプルプロジェクトを
立てるだけなのにビルドに失敗するという謎現象に苦しむことになります。
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/appengine/tools/enhancer/Enhance Caused by: java.lang.ClassNotFoundException: com.google.appengine.tools.enhancer.Enhance at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
自分のmacは何のjre参照しているんだ!?
ひとまず自分のMacが利用しているjreのバージョンをチェックするためにコンソールで
java -version javac -version
を行なってみると"1.7.0_21"と表示されています。
しかし、問題はEclipseはどうやら別のjreを参照してしまっているらしいこと
プロジェクト右クリックからのビルドパス
>MacOS DefaultのSytemJREをダブルクリック
>EditLibraryからAlternateJREの右側のInstalledPath
>PreferenceにてJVMcontentsのEdit
によって1.6系のJREを参照してしまっていることがわかりました。
つまりMac事態のJREとEclipseのMacOS DefaultのSytemJREが違うものになっていた事が問題だったようです。
(後々調べてみると、HD直下のライブラリの中のJAVAディレクトリと
HD直下のシステム下のライブラリの中のJAVAディレクトリと2つ有ることが発覚しました。)
Eclipseの読み込み時の環境変数を書き換えよう
ということでEclipseの読み込み時の環境変数を書き換えることにしました。
http://d.hatena.ne.jp/MonteCut/20111121/1321885785
を参考にしつつ、読み込み時の環境変数も1.7.0_21(最新版)の方にPATHを通します。
この時はまったのが以下の表記
アプリケーション>ユーティリティ>Java Preferences
調べてみるとJava for OS X 2012-006から無くなったようです・・・。
https://discussionsjapan.apple.com/thread/10119956?start=0&tstart=0
ついに動いた!!
そうしてEclipseをZIP展開からやり直し→JAEを再びインストールをすると
ついに念願のノーエラーでサンプルコードが動きました!!
とにかくコードを書くための環境設定が大変だと感じた今回の出来事
前から思っていたのですが、初心者がプログラムを自習するために一番問題になるのは
コードの動き方とかではなくて動かすために必要となる環境の設定ですよね。
簡単な事をするためにある程度の知識が必要というジレンマを何とかしたいものです。
とにかく、これで明日から憧れのGAEで開発が出来ます。