현재 Windows7 64bit를 사용하고 있는데 Scala 환경을 설정하기 위해서 Scala의 Path를 잡고 Console에서 scala 명령어를 입력하자 아래와 같이 "2.7.7.final은(는) 예상되지 않았습니다." 오류가 나왔습니다.(2.7.7버전입니다.)
도데체 이게 무슨 오류인것인지 정말 예상할 수가 없었는데 검색을 통해서 문제를 발견했습니다. 64bit의 경우 32bit프로그램들을 위해서 C:\Program Files (x86) 폴더아래 프로그램들이 설치되게 되는데 스칼라의 Path에 괄호()가 포함될 경우 제대로 인식하지 못해서 오류가 나타난 것이었습니다. 스칼라야 압축만 풀면 되는 것이기 때문에 위치를 이동하면 끝이지만 스칼라의 폴더위치를 이동시켜서 PATH를 다시 잡아도 JDK에서 다시 같은 오류메시지가 나타나게 됩니다. 스칼라는 스칼라혼자 쓰는 것이므로 상관없지만 JDK까지 위치를 다시 잡아주는 것은 피곤한 일입니다.
이 문제는 Junction이라는 프로그램을 통해서 해결할 수 있습니다.(현재 버전은 1.05입니다.)
프로그램에 나온 설명에 따르자면 Windows는 2000이후부터 NTFS Junction이라고 알려진 Symbolic Link를 지원하고 있는데 이 Junction을 만들 수 있는 툴은 제공하고 있지 않기 때문에(리소스킷이란걸 구입해야 한다고 합니다.) Jucntion 프로그램을 만들었다고 합니다.
콘솔에서 junction c:\ProgramFilesx86 "c:\Program Files (x86)" 를 실행하면 c:\Program Files (x86)폴더에 대한 심볼릭 링크가 ProgramFilesx86라는 이름으로 생성되게 됩니다. 탐색기에서 바로가기 비슷한 아이콘과 함께 표시도 되고 c:\Program Files (x86)아래에 있는 모든 폴더와 경로를 c:\ProgramFilesx86 경로를 통해서 접근할 수 있게 됩니다. 이제 c:\ProgramFilesx86 경로를 이용해서 SCALA_HOME와 JAVA_HOME를 다시 설정해 주면 됩니다.
이제 scala명령어가 정상적으로 동작하는 것을 볼 수 있습니다.
만들어진 심볼릭링크는 junction -d c:\ProgramFilesx86 명령어를 통해서 삭제할 수 있습니다.
심볼릭링크를 만들때, 윈7에는 mklink라는 쉘에 내장된 명령어를 사용하면 간단하지요 :)
헉... 윈7에는 내장되었나 보군요 ㅡㅡ;;;;
전 윈도우에도 심볼릭링크가 있다는걸 이번에 처음 알아서.... ㅎ
감솨르~~
잘봤습니다~.