2010/08/01

scala-2.8.0.final on Windows7 64bit

Windows7 64bit に scala-2.8.0.final を設定したのでログ残し。
  • まず、ここから scala-2.8.0.final.zip をダウンロード
  • ダウンロードした zip ファイルを C:\scala\scala-2.8.0.final として展開
  • 環境変数 JAVA_HOME が設定されていることを確認
  • 環境変数 JAVACMD に java を設定
  • 環境変数 SCALA_HOME をC:\scala\scala-2.8.0.finalに設定
  • 環境変数 PATH に %SCALA_HOME%\bin を追加
これで動く。

はずなんだが、環境によるとコマンドプロンプトで scala のREPLを起動させた場合、「java.exeの使い方が誤っています」というエラーメッセージが出る場合がある。
これは、OS が 64bit の場合に出るんだけど、原因は scala.bat の32行目と、JDKインストールされているディレクトリ。
if exist "%JAVA_HOME%\bin\java.exe" set _JAVACMD=%JAVA_HOME%\bin\java.exe
OS が 64bit で x86 用の Java をインストールしている場合、C:\Program Files(x86) 以下にインストールされている場合が多い(デフォルトだから)
この(x86)がクセモノで、丸括弧によってブロックと認識されてしまい、\Java\jdk1.6.0_xx\bin\java.exe だけ単独の命令として扱われてしまう。
対策としては、以下が考えられるかな。
  1. 64bit 用の JDK をインストールする
  2. 32bit 用の JDK だけど、丸括弧の含まれないパスにインストールする
  3. scala.bat と scalac.bat の問題の部分をコメントアウトする。ただし、%HAVA_HOME%\bin にパスが通っていること
ちなみに、俺は 1 でやった。
システム上の都合で、新規に JDK をインストールできないならば、3しかないかなぁ。
環境変数の遅延展開とか試してみたけど、どうも挙動がおかしい。

0 件のコメント :

コメントを投稿