今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

GAEのローカルサーバが起動しないのはJDKのバグが原因

AndroidとGAEを連携させるアプリを作りはじめようとして、Eclipseで「App Engine Connected Android Project」を生成した。
そうすると、プロジェクトを作るときにGAEでのAPI KeyとProject Numberを求められる。なので、GAEで新規にプロジェクトを作成して、そのAPI KeyとProject Numberを入力する。

それだけやれば、GCMを使ったAndroidアプリ&ローカルのサーバが動くようになるはずなんだけど、ローカルのサーバが動かない。

ぐぐってみたら、Stackoverflowでまったく同じエラーメッセージがヒット。

java - Class JavaLaunchHelper is implemented in both. One of the two will be used. Which one is undefined - Stack Overflow

要するに、Javaのバージョンが新しい(u26以降)のはバグがあるらしい。

サーバ側のプロジェクトのプロパティを開いて、ビルドパスのライブラリタブの中からJREを一旦削除して、「Add Library」でu25以前の古いJRE(ここではu11)を設定してやれば動くようになった。