2010-07-15 76 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