Setting up sbt to use Java 7 for compilation?

后端 未结 5 1085
暗喜
暗喜 2020-11-27 04:14

I\'m getting compile errors when running the compile task as the sources reference new classes in java.nio.file package that only appeared in Java

5条回答
  •  醉梦人生
    2020-11-27 04:55

    I use virtualenv, which is a tool from the Python ecosystem. In a nutshell, it is a shell script which allows you to change your PATH variable easily and get back to what it was before, if you need to.

    1. First install virtualenvwrapper (a wrapper around virtualenv):

      $ apt-get install virtualenvwrapper

    2. Now create a virtual environment for, say, Java8 with Scala-2.11.

      $ mkvirtualenv j8s11

    3. Now, adjust ~/.virtualenvs/j8s11/bin/postactivate so that you define locations for all your tools. You can see an example below which works for me:

    #!/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
    
    1. Now you can just use workon to switch between environments. Example:
    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
    

提交回复
热议问题