Lucene/Solr trunk (the future 6.0 release) is now on Java8, while version 5.x is still on Java7.
Linux and Windows allows one to install a JDK any place in the filesystem, and I use the convention of installing in
/opt/jdk7
and /opt/jdk8
. Things are a little more difficult on Mac OS-X however, as you can’t chose the install location. Luckily there is a command called java_home
to show you where a JDK is installed.
Here’s a snippet from my .profile
to help manage working with different java versions:
OS=`uname` case "$OS" in CYGWIN*) OS=cygwin OPT=c:/opt ;; *) OPT=/opt ;; esac set-java () { export JAVA_HOME="$*" if [ $OS = "cygwin" ]; then export PATH="`cygpath $JAVA_HOME/bin`:$PATH" else export PATH="$JAVA_HOME/bin:$PATH" fi } if [ $OS = "Darwin" ]; then JAVA7=`/usr/libexec/java_home -v 1.7` JAVA8=`/usr/libexec/java_home -v 1.8` else JAVA7=$OPT/jdk7 JAVA8=$OPT/jdk8 fi set-java $JAVA8
Now, if I switch from working on trunk to working on Lucene 5 or Solr 5, I can easily switch the default JDK for a single terminal via the set-java
shell function.
/opt/heliosearch$ java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) /opt/heliosearch$ set-java $JAVA7 /opt/heliosearch$ 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) /opt/heliosearch$