在为 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
!