복붙노트

[SCALA] 컴파일 자바 7을 사용하는 SBT 설정?

SCALA

컴파일 자바 7을 사용하는 SBT 설정?

나는 소스는 자바 7에 출연 java.nio.file 패키지의 새로운 클래스를 참조로 컴파일 작업을 실행할 때 컴파일 오류가 받고 있어요.

나는 build.sbt에 다음과 같은있다 :

javaHome := Some(file("/opt/jdk/jdk1.7.0"))

fork := true

SBT에서 :

> show java-home
[info] Some(/opt/jdk/jdk1.7.0)

그것은 컴파일하고 이클립스에서 잘 실행됩니다. 어떻게 컴파일 자바 7 사용 SBT를 설정할 수 있습니다?

해결법

  1. ==============================

    1.가장 신뢰할 수있는 (아마도 유일한) 방법은이 JDK7 폴더에 자바와 SBT를 시작하는 순간에이 작업을 수행합니다.

    가장 신뢰할 수있는 (아마도 유일한) 방법은이 JDK7 폴더에 자바와 SBT를 시작하는 순간에이 작업을 수행합니다.

    당신의 SBT 런처 스크립트를 수정; 또는 명령 줄 옵션으로 (훨씬 더! 등) 자바 홈을 지정할 수 있습니다이 하나를 사용하십시오.

    ~/code/scratch/20111009 sbt -java-home /Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64/Contents/Home
    Starting sbt: invoke with -help for other options
    [info] Loading global plugins from /Users/jason/.sbt/plugins
    [info] Set current project to default-3e990a (in build file:/Users/jason/code/scratch/20111009/)
    > console
    [info] Compiling 1 Scala source to /Users/jason/code/scratch/20111009/target/scala-2.9.1/classes...
    [info] Starting scala interpreter...
    [info] 
    Welcome to Scala version 2.9.1.final (OpenJDK 64-Bit Server VM, Java 1.7.0-internal).
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> java.util.Objects.equals(null, null)
    res0: Boolean = true
    

    간단히 JAVAHOME 설정 : = 일부 (파일 ( "/ 라이브러리 / 자바 / JavaVirtualMachines / 오픈 JDK-1.7-x86_64의 / 내용 / 홈")) 포크 프로세스를 컴파일하는 데 사용되는 Java 버전을 변경하지만 자바 표준의 버전을 변경하지 않습니다 클래스 패스에 도서관도 항상 테스트를 실행하는 데 사용되는 버전은 SBT와 같은 JVM을 실행합니다.

  2. ==============================

    2.당신이 리눅스 또는 Mac을 사용하는 경우, 또 다른 가능성은 jenv, 명령 줄 자바 관리자 보는 것입니다.

    당신이 리눅스 또는 Mac을 사용하는 경우, 또 다른 가능성은 jenv, 명령 줄 자바 관리자 보는 것입니다.

    그것은 당신이 JDK를 사용하는 프로젝트에 따라 선택할 수 있습니다.

  3. ==============================

    3.나는 파이썬 생태계에서 도구 인 VIRTUALENV 사용합니다. 간단히 말해서, 그것은 당신이 쉽게 PATH 변수를 변경하고 필요한 경우, 그 전에 무엇을 다시 얻을 수 쉘 스크립트입니다.

    나는 파이썬 생태계에서 도구 인 VIRTUALENV 사용합니다. 간단히 말해서, 그것은 당신이 쉽게 PATH 변수를 변경하고 필요한 경우, 그 전에 무엇을 다시 얻을 수 쉘 스크립트입니다.

    #!/bin/bash
    
    JAVA_VERSION=1.8.0_31
    SCALA_VERSION=2.11.5
    SBT_VERSION=0.13.7
    ANT_VERSION=1.9.4
    M2_VERSION=3.2.5
    GRADLE_VERSION=1.6
    PLAY_VERSION=2.3.7
    ACTIVATOR_VERSION=1.2.12
    IDEA_VERSION=IC-135.475
    PYCHARM_VERSION=community-3.4.1
    
    TOOLS_HOME=/opt/developer
    export JAVA_HOME=${TOOLS_HOME}/jdk${JAVA_VERSION}
    export SCALA_HOME=${TOOLS_HOME}/scala-${SCALA_VERSION}
    export SBT_HOME=${TOOLS_HOME}/sbt-${SBT_VERSION}
    export ANT_HOME=${TOOLS_HOME}/apache-ant-${ANT_VERSION}
    export M2_HOME=${TOOLS_HOME}/apache-maven-${M2_VERSION}
    export GRADLE_HOME=${TOOLS_HOME}/gradle-${GRADLE_VERSION}
    export PLAY_HOME=${TOOLS_HOME}/play-${PLAY_VERSION}
    export ACTIVATOR_HOME=${TOOLS_HOME}/activator-${ACTIVATOR_VERSION}
    export IDEA_HOME=${TOOLS_HOME}/idea-${IDEA_VERSION}
    export PYCHARM_HOME=${TOOLS_HOME}/pycharm-${PYCHARM_VERSION}
    
    PATH=${PYCHARM_HOME}/bin:$PATH
    PATH=${IDEA_HOME}/bin:$PATH
    PATH=${ACTIVATOR_HOME}:$PATH
    PATH=${PLAY_HOME}:$PATH
    PATH=${GRADLE_HOME}/bin:$PATH
    PATH=${M2_HOME}/bin:$PATH
    PATH=${ANT_HOME}/bin:$PATH
    PATH=${SBT_HOME}/bin:$PATH
    PATH=${SCALA_HOME}/bin:$PATH
    PATH=${JAVA_HOME}/bin:$PATH
    export PATH
    
    rgomes@terra:~$ workon j8s11
    
    (j8s11)rgomes@terra:~$ java -version
    java version "1.8.0_31"
    Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
    (j8s11)rgomes@terra:~$ scala -version
    Scala code runner version 2.11.5 -- Copyright 2002-2013, LAMP/EPFL
    
    (j8s11)rgomes@terra:~$ workon j7s10
    
    (j7s10)rgomes@terra:~$ java -version
    java version "1.7.0_71"
    Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
    (j7s10)rgomes@terra:~$ scala -version
    Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL
    
  4. ==============================

    4.난 당신이 SBT를 호출 할 때 당신이 할 수있는 기본적으로 JAVA_HOME에서 설정 한대로 변경할 수 있으리라 믿고있어 :

    난 당신이 SBT를 호출 할 때 당신이 할 수있는 기본적으로 JAVA_HOME에서 설정 한대로 변경할 수 있으리라 믿고있어 :

    JAVA_HOME=<path-to-jdk-home> sbt
    

    이 SBT 0.13.8와 OSX에 나를 위해 작동

  5. ==============================

    5.1.7 javac의 옵션을 변경? 나는 JAVA_HOME을 설정하는 것이 필요하다 생각하지 않습니다.

    1.7 javac의 옵션을 변경? 나는 JAVA_HOME을 설정하는 것이 필요하다 생각하지 않습니다.

  6. from https://stackoverflow.com/questions/7701692/setting-up-sbt-to-use-java-7-for-compilation by cc-by-sa and MIT license