文字の洪水に溺れながら

人生初心者、でも人生のハードモードぐらいを生き抜きたい人間。

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)

過程は端折りますが色々とさまよい歩き、
結局、JRE環境変数がおかしいのではないかというあたりが付きました。

自分の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事態のJREEclipseMacOS 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

代わりにシステム環境設定のJAVAコンポーネントを利用しました。

ついに動いた!!

そうしてEclipseをZIP展開からやり直し→JAEを再びインストールをすると
ついに念願のノーエラーでサンプルコードが動きました!!


とにかくコードを書くための環境設定が大変だと感じた今回の出来事
前から思っていたのですが、初心者がプログラムを自習するために一番問題になるのは
コードの動き方とかではなくて動かすために必要となる環境の設定ですよね。
簡単な事をするためにある程度の知識が必要というジレンマを何とかしたいものです。

とにかく、これで明日から憧れのGAEで開発が出来ます。