2010-07-15 83 views
2

我下载斯卡拉2.8,但执行scala.bat它说不能在Windows 7

系统找不到set_home

我没有这个问题与旧版本的Scala的时候开始阶。

那么如何启动scala?

更新:我在Windows 7上,我设置了JAVA_HOME环境变量。问题是未知的set_home批处理命令。

我已经在这里找到了官方教程: http://www.scala-lang.org/node/310

我也完全一样,他们问,但 它不使用Scala 2.8上工作WINDOWS 7

他们似乎没有测试!

这是他们的批处理文件(scala.bat),我没有看到,当Scala是甚至开始!:

if "%OS%"=="Windows_NT" (
    @setlocal 
    call :set_home 
    set _ARGS=%* 
) else (
    set _SCALA_HOME=%SCALA_HOME% 
    rem The following line tests SCALA_HOME instead of _SCALA_HOME, because 
    rem the above change to _SCALA_HOME is not visible within this block. 
    if "%SCALA_HOME%"=="" goto error1 
    call :set_args 
) 

rem We use the value of the JAVACMD environment variable if defined 
set _JAVACMD=%JAVACMD% 

if "%_JAVACMD%"=="" (
    if not "%JAVA_HOME%"=="" (
    if exist "%JAVA_HOME%\bin\java.exe" set _JAVACMD=%JAVA_HOME%\bin\java.exe 
) 
) 

if "%_JAVACMD%"=="" set _JAVACMD=java 

rem We use the value of the JAVA_OPTS environment variable if defined 
set _JAVA_OPTS=%JAVA_OPTS% 
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=-Xmx256M -Xms32M 

set _TOOL_CLASSPATH= 
if "%_TOOL_CLASSPATH%"=="" (
    for %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f" 
    if "%OS%"=="Windows_NT" (
    for /d %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f" 
) 
) 
+0

我有Windows Vista,scala-2.8.0.final。我的路径中有java 1.6,我可以运行scala.bat。你有什么版本的Windows?而通过旧版本的Scala,你的意思是2.7.x? – huynhjl 2010-07-15 14:06:06

+0

我已经更新了我的文章:我在Windows 7上。我不记得旧版本,因为我在一年前做过,我认为这是一个exe文件,而不是批处理文件,这就是为什么它工作得很好。 – user310291 2010-07-15 14:12:47

+0

不要认为,因为它不适合你,它不适用于每个人(当​​你说“看起来他们没有测试!”时,你似乎在做什么)。它适用于我的Windows 7系统。 – Jesper 2010-07-16 08:10:16

回答

5

我们做了测试在Windows 7和公正,以确保我测试现在再次,它适用于我(Windows 7,64位)。

能否请你告诉运行以下命令的输出:

C:\Users\luc\Desktop\scala-2.8.0.final>echo %PATH% 
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\Wind 
owsPowerShell\v1.0\ 

C:\Users\luc\Desktop\scala-2.8.0.final>java -version 
java version "1.6.0_21" 
Java(TM) SE Runtime Environment (build 1.6.0_21-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode) 

C:\Users\luc\Desktop\scala-2.8.0.final>bin\scala 
Welcome to Scala version 2.8.0.final (Java HotSpot(TM) 64-Bit Server VM, Java 1. 
6.0_21). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> 1+1 
res0: Int = 2 

你发布完整的批处理脚本?如果是这样,它已损坏,它应包含更多代码(以上注释)。尝试再次下载。

@echo off 

rem ########################################################################## 
rem # Copyright 2002-2010, LAMP/EPFL 
rem # 
rem # This is free software; see the distribution for copying conditions. 
rem # There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
rem # PARTICULAR PURPOSE. 
rem ########################################################################## 

rem We adopt the following conventions: 
rem - System/user environment variables start with a letter 
rem - Local batch variables start with an underscore ('_') 

if "%OS%"=="Windows_NT" (
    @setlocal 
    call :set_home 
    set _ARGS=%* 
) else (
    set _SCALA_HOME=%SCALA_HOME% 
    rem The following line tests SCALA_HOME instead of _SCALA_HOME, because 
    rem the above change to _SCALA_HOME is not visible within this block. 
    if "%SCALA_HOME%"=="" goto error1 
    call :set_args 
) 

rem We use the value of the JAVACMD environment variable if defined 
set _JAVACMD=%JAVACMD% 

if "%_JAVACMD%"=="" (
    if not "%JAVA_HOME%"=="" (
    if exist "%JAVA_HOME%\bin\java.exe" set _JAVACMD=%JAVA_HOME%\bin\java.exe 
) 
) 

if "%_JAVACMD%"=="" set _JAVACMD=java 

rem We use the value of the JAVA_OPTS environment variable if defined 
set _JAVA_OPTS=%JAVA_OPTS% 
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=-Xmx256M -Xms32M 

set _TOOL_CLASSPATH= 
if "%_TOOL_CLASSPATH%"=="" (
    for %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f" 
    if "%OS%"=="Windows_NT" (
    for /d %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f" 
) 
) 

set _PROPS=-Dscala.home="%_SCALA_HOME%" -Denv.emacs="%EMACS%" 

rem echo "%_JAVACMD%" %_JAVA_OPTS% %_PROPS% -cp "%_TOOL_CLASSPATH%" scala.tools.nsc.MainGenericRunner %_ARGS% 
"%_JAVACMD%" %_JAVA_OPTS% %_PROPS% -cp "%_TOOL_CLASSPATH%" scala.tools.nsc.MainGenericRunner %_ARGS% 
goto end 

rem ########################################################################## 
rem # subroutines 

:add_cpath 
    if "%_TOOL_CLASSPATH%"=="" (
    set _TOOL_CLASSPATH=%~1 
) else (
    set _TOOL_CLASSPATH=%_TOOL_CLASSPATH%;%~1 
) 
goto :eof 

rem Variable "%~dps0" works on WinXP SP2 or newer 
rem (see http://support.microsoft.com/?kbid=833431) 
rem set _SCALA_HOME=%~dps0.. 
:set_home 
    set _BIN_DIR= 
    for %%i in (%~sf0) do set _BIN_DIR=%_BIN_DIR%%%~dpsi 
    set _SCALA_HOME=%_BIN_DIR%.. 
goto :eof 

:set_args 
    set _ARGS= 
    :loop 
    rem Argument %1 may contain quotes so we use parentheses here 
    if (%1)==() goto :eof 
    set _ARGS=%_ARGS% %1 
    shift 
    goto loop 

rem ########################################################################## 
rem # errors 

:error1 
echo ERROR: environment variable SCALA_HOME is undefined. It should point to your installation directory. 
goto end 

:end 
if "%OS%"=="Windows_NT" @endlocal 
+0

是的,这是我复制的完整批次,所以是的,我会再次下载,谢谢。 – user310291 2010-07-16 19:03:12

1

您需要的bin目录中斯卡拉安装添加到您的PATH环境变量。

例如,如果您在C:\Dev\scala-2.8.0.final中安装了Scala,然后将C:\Dev\scala-2.8.0.final\bin添加到您的PATH

在这里寻找如何在Windows 7上改变PATH说明:

How to Add, Remove or Edit Environment variables in Windows 7?

注意:您必须关闭并重新打开命令提示符下设置环境变量之后;如果您打开命令提示符,它将不会接受更改。

+1

我已经做到了,当然。我不是初学者,我知道DOS自存在:)。 – user310291 2010-07-16 19:02:09

+0

嘿,但是如果我在eclipse IDE中安装了scala插件,你能告诉我如何找到bin吗? – kolboc 2016-10-07 14:33:19

+0

@kolboc我不知道,我没有在Scala中使用Eclipse。从http://www.scala-lang.org/下载Scala – Jesper 2016-10-07 19:25:28