[Scala/Win 8] Path contains invalid character 에러

Scala를 윈도우 8에서 가장 쉽게 설치하는 방법은 SBT를 설치하는 것이다. (http://scalasbt.artifactoryonline.com/scalasbt/sbt-native-packages/org/scala-sbt/sbt/0.12.4/sbt.msi .이런 툴처럼..) 설치 후, Path설정에서 기본적인 C:\Program Files (x86)\sbt 와 같이 패스를 잡아주고, 커멘드 창에서 sbt를 통해 설치 유무를 확인할 수 있다.

허나,  SBT Auto Installer로 설치하면  Path contains invalid character 어쩌구 와 같은 에러가 나올 때가 있다. 이유는 간단하다. SBT의 경우, Apache-ivy를 기반으로 의존성 동기화가 되어있다. sbt.bat 파일을 열어보면, 이리저리 환경세팅을 하는 모습을 볼 수 있는데 결국 jansi.jar와 sbt-launch.jar파일을 실행하여 의존성 라이브러리를 유저 라이브러리 폴더에 다운받게 되는것.

문제는 유저 라이브러리에 한글 등의 아스키 문자가 들어갔을 경우다. 나의 경우는 C:\Users\메튜장 이라는 폴더가 유저 라이브러리 폴더이다. 자바의 기본이니깐.. 이 경로를 바꾸기 위해서는 sbt.bat파일을 보면

“%_JAVACMD%” %_JAVA_OPTS% %SBT_OPTS% -cp “%SBT_HOME%jansi.jar;%SBT_HOME%sbt-launch.jar;%SBT_HOME%classes” SbtJansiLaunch %*

 

 

 

위와 같이 JAVA_OPTS 라는 환경변수를 읽어오는 부분이 있으므로, 이 부분에 유저 라이브러리 폴더를 바꿔주는 어떤 수를 쓰면된다. 즉, System Properties에서 System variables에 JAVA_OPTS를 추가하여 유저 라이브러리를 바꿔주는 것을(나의 경우는 -Dfile.encoding=UTF8 -Duser.home=D:\) 를 추가해 주면 된다.

scala