MacユーザーがTopCoderをはじめるうえでつまづくポイント
MacユーザーがいざTopCoderでArenaを開こうとするとJavaがインストールされてないって怒られることがあります。
結論だけ先に言うと、自分の環境では/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javawsからJREをうまく見つけられないみたいなので、他のパスにインストールされているjavawsを使うとうまく起動しました
(例えば/System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws )。
それでJavaが入っているかチェックしてみると
「ChromeはJava 7をサポートしていません」と言われるので、他のブラウザ(SafariやFirefox)で確認してみます。
ちゃんとインストールされていますね。
んで、FirefoxからTopCoderのArenaを開いてみます。
お、さっきより先に進めますね。Java Web Startで起動するためのファイルがダウンロードされるようです。
OKをクリックして、ダウンロードして実行してみます。
おっと、何やら文句を言われました。
ふむふむ、Java Runtimeが入ってないと
でも、さっきJavaが入ってる確認はしたので、これはおかしいです。
では、先ほどダウンロードしたファイルを直接実行してみます。
Java Web Startで実行するので以下のコマンドでいけるはずです。
$ javaws <filename>
すると、さきほどと同じように文句を言われました。
$ javaws ~/Downloads/ContestAppletProd.jnlp No Java runtime present, requesting install. Unable to locate a Java Runtime to invoke.
javawsの場所を確認してみます。
$ which javaws /usr/bin/javaws
/usr/bin/javawsはシンボリックリンクなので、
参照先のファイルを調べます。
$ ls -l /usr/bin/javaws /usr/bin/javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javawsにJava Web Startはあるみたいです。
Is there any way to reenable javaws with Java 6 on OSX Lion? - Stack Overflow ここを見てみると、Javaのインストールパスは複数あるようです。
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/ /System/Library/Java/Support/Deploy.bundle/Contents/MacOS
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands以外のパスのJava Web Startを使ってみます。
$ /System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws ~/Downloads/ContestAppletProd.jnlp
すると正常に起動しました。
起動したので、原因は探りません。とりあえず、/System/Library/Frameworks/JavaVM.framework/Versions/Current/CommandsからJREをうまく見つけられていないようです。