Google App Engine / Java 開発環境の更新で起こった問題の解決記録

Google App Engine / Java で開発環境を更新しようとしたところ、なかなかうまくいかなかったのでその解決の記録を残します。大きく分けると問題は2つで、「Eclipseからの自動更新に失敗する」、「App Engine Java SDKがうまく認識されない」です。

 

更新前の環境はこんな感じでした。

 

ちょっとSDKの更新が追い付いていなかったので、これを

に上げようとしました。

 

問題1 自動更新に失敗する
Eclipseのメニュー「Help → Check for Updates」より、自動更新しようとしました。いつもならこれでOKですが、なぜか途中でエラーメッセージが出て失敗してしまいます。エラーの詳細を見ると「No repository found containing (以下省略)」といった内容が複数出ていました。

原因
Eclipseにキャッシュされている更新サイトのURLが古いことが原因のようです。

解決方法
・更新サイト一覧を作り直す
Eclipseのメニュー「Window → Preferences → Install/Update → Available SoftwareSites」で更新サイトの一覧を全て選択してExport、全て削除、Eclipse再起動、先ほどExportしたものをImport、の手順で作り直します。これで自動更新ができるようになりました。

 

問題2 SDKがうまく認識されない
上記の手順で1.8.6に上げることができたApp Engine Java SDKですが、プロジェクトでエラーが発生しており、どうやらEclipseSDKがうまく認識されていないようです。念の為にとApp Engine Java SDKを一旦アンインストールし、ZIPでダウンロードし直しEclipseに追加しようとしました。しかし、「failed to initialize app engine sdk at (以下省略) 」と表示され、EclipseへのSDKの追加ができません。

原因
JREが古い?Java7とJava6が混在した環境が悪い?

解決方法
JREを最新にする
eclipse.iniを「-Dosgi.requiredJavaVersion=1.7」と1.6から1.7に書き換える。
以上でSDK 1.8.6が認識され、開発環境の更新に成功しました。
この内容をもう少し詳しく書くと、まずJREを1.7.0_25から最新の1.7.0_45に上げました。しかし、それだけでは同じエラーが出続けます。さらにeclipse.ini内の「-Dosgi.requiredJavaVersion=」を1.6から1.7に変えました。ところが今度はEclipseの起動時に「Java7以上の環境でないと起動できない」といったエラー(意訳。正式なエラーメッセージではない)が出てしまいます。Eclpseフォルダ内のjreフォルダにJRE1.6が存在していたのが原因のようです。このjreフォルダを消してもいいような気もしましたが、とりあえず「jre_xxx」とフォルダ名変更してみたらEclipseが起動するようになりました。そして、ZIPでダウンロードしていたApp EngineJava SDK 1.8.6をEclipseに追加する手順を実行したところ、無事認識されるようになりました。

 

以上が解決の記録です。
Google App Engineは月に1回以上の更新があり、時々こういった問題が起こるので開発環境の更新に苦労することがありますね。この情報が誰かの参考になれば幸いです。