Windows用のscala 2.10.2をダウンロードし、scalaを実行した後、次のようなエラーに遭遇しました:
"错误: 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner"
これは、「エラー: メイン クラス scala.tools.nsc.MainGenericRunner が見つからないか、読み込めません」という意味です。scala.bat
そのため、理由を確認したところ、次のような機能が見つかりました。
:set_home
set _BIN_DIR=
for %%i in (%~sf0) do set _BIN_DIR=%_BIN_DIR%%%~dpsi
echo in set_home: %_BIN_DIR%
set _SCALA_HOME=%_BIN_DIR%..
goto :eof
この関数の後、_SCALA_HOME は になりますがD:\program files\scala\files\scala\bin\..
、これは明らかに間違っています。とにかく、_SCALA_HOME を正しいパスに設定した後、エラーは修正されました。ただし、この関数が実際に何をしようとしているのか、何%~sf0
を意味するのか、誰でも知っていますか? %%~dpsi
ありがとうございました!
ありがとう@gourlaysama
私は最終的に本当の理由を見つけました.次のコードを実行すると、結果が次のようになります:
for %%i in (%~sf0) do (
echo "%%"i is: %%i
echo sf0 is : %%~dpsi
set _BIN_DIR=%_BIN_DIR%%%~dpsi
)
出力:
"%"i is: D:\program
sf0 is : D:\
"%"i is: files\scala\bin\scala.bat
sf0 is : D:\program files\scala\bin\files\scala\bin\
そのため、誤動作はprogram
files
!間の余分なスペースが原因です。