2011-03-11にあったMacOS Xのアップデート実施すると、ローカルで開発サーバが起動できなくなる問題が出るようです。現象としては、開発サーバ(eclipseから起動しても、結局はSDK内のdev_appserverが起動されます)を起動した後、数秒で開発サーバが終了してしまう、という現象です。私が試したときはたまーに少しだけ動作してから落ちる、という場合もありました。下記でも報告されていますし、対策も説明されています。
対策を簡潔に説明しておきます
- http://openjdk-osx-build.googlecode.com/files/OpenJDK-1.7-x86_64-20110221.dmg からOpenJDK1.7のイメージを入手する
- dmgを開いて、Dukeアイコンの
Installation.pkgを実行してOpenJDK1.7をインストールする
これでopenjdk-1.7がインストールされます。此処から先は開発サーバの起動毎に手順があります。
SDK内のdev_appserver.shを直接起動している人
dev_appserver.shをエディタで開いてJAR_FILE=...などの次の行あたりにJAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Homeを追加する
eclipseから起動している人
- eclipseの設定画面を開く
- 左のツリーから
Java > Installed JREsを選択する - 右側のペインで
Addをクリックする Add JREダイアログでMacOS X VMを選択してNextをクリックするJRE definitionの画面に移るので、JRE HomeのDirectoryボタンをクリックして/Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Homeを選択するJRE nameにopenjdk-1.7-x86_64を入力する
ここまでの手順で、eclipseがOpenJDK1.7を認識出来るようになります。次に、appengineプロジェクトに対して次の設定を行う必要があります。
- プロジェクトのプロパティを開き、左のツリーから
Java Build Pathを選択する - 右側のペインで
Librariesタブを開き、リストの下の方にあるJRE System Library[JVM 1.6.0 (MacOS X Default)]を選択し、Removeをクリックして削除する。 Add LibraryボタンをクリックするAdd LibraryダイアログでJRE System Libraryを選択してNextをクリックする- どのJREを使うか選択する画面になるので
Alternate JREを選択し、先の手順でEclipseに認識させたopenjdk-1.7-x86_64を選択する - プロジェクトのLibraryにopenjdkが追加される。
これらの手順で開発サーバが起動できるようになります。
追記
上記手順で開発サーバを起動したときにjavax.net.ssl.SSLExceptionが発生するのが気になる場合は、次の手順で解消できます。
- cd /Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Home/jre/lib/security
- cp /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts .
2011-03-15追記
AppleのJDKを入れ直すという、もっと簡単そうな手順も紹介されています。





0 件のコメント:
コメントを投稿