#!/bin/sh # $Id: javac-version.in 6416 2011-09-07 05:20:14Z cher $ # Copyright (c) 2005-2011 Alexander Chernov LANG_CONFIG_DIR="/home/judges/compile/conf/lang.d" common_config() { echo 'long_name="Java JDK"' echo 'src_sfx=".java"' echo 'exe_sfx=".jar"' echo 'arch="java"' } failure() { rm -f conftest* echo 'version=' echo 'arg="'"${arg}"'"' common_config echo 'JAVARUN=false' echo 'JAVACRUN=false' echo 'JAVADIR=' echo 'JAVAVER=' [ "${verbose}" = 1 ] && echo "no" >&2 exit 1 } unset LANG unset LC_ALL unset LC_MESSAGES unset LANGUAGE if [ x"$1" = x-v ] then verbose=1 shift fi # recheck the language if [ x"$1" = x-r ] then arg="$2" [ x"$2" != x ] && JAVACRUN="$2" [ "${JAVACRUN}" = "" ] && JAVACRUN="javac" [ "${verbose}" = 1 ] && echo -n "checking whether Java JDK is available..." >&2 javacdir1=`dirname "${JAVACRUN}"` if [ "${javacdir1}" = . ] then JAVARUN="java" else JAVARUN="${javacdir1}/java" fi "${JAVARUN}" -version >/dev/null 2>/dev/null || failure javafullpath=`which "${JAVARUN}"` || failure [ "${javafullpath}" != "" ] || failure javafulldir=`dirname "${javafullpath}"` || failure [ "${javafulldir}" != "" -a "${javafulldir}" != "." ] || failure javalastdir=`basename "${javafulldir}"` || failure [ "${javalastdir}" = "bin" ] || failure JAVADIR=`dirname "${javafulldir}"` || failure [ "${JAVADIR}" != "" ] || failure version=`${JAVARUN} -version 2>&1 | grep "java version" | sed 's/^.*"\(.*\)"$/\1/g'` || failure [ "${version}" != "" ] || failure case x"${version}" in x1.7.*) JAVAVER=1.7;; x1.6.*) JAVAVER=1.6;; x1.5.*) JAVAVER=1.5;; x1.4.*) JAVAVER=1.4;; x1.3.*) JAVAVER=1.3;; x1.2.*) JAVAVER=1.2;; *) failure;; esac cat > conftest.java </dev/null 2>/dev/null || failure [ -f conftest.class ] || failure touch conftest.policy "${JAVARUN}" -Djava.security.manager -Djava.security.policy=conftest.policy conftest >/dev/null 2>/dev/null || failure rm -f ./conftest* echo 'version="'"${version}"'"' echo 'arg="'"${arg}"'"' common_config echo 'JAVARUN="'"${JAVARUN}"'"' echo 'JAVACRUN="'"${JAVACRUN}"'"' echo 'JAVADIR="'"${JAVADIR}"'"' echo 'JAVAVER="'"${JAVAVER}"'"' [ "${verbose}" = 1 ] && echo "yes, ${JAVACRUN}, ${version}" >&2 exit 0 fi if [ x"$1" = x-l ] then echo "Java JDK (SUN or compatible) compiler [http://java.sun.com]" exit 0 fi [ "${EJUDGE_LANG_CONFIG}" = "" ] && EJUDGE_LANG_CONFIG="${LANG_CONFIG_DIR}/javac.cfg" if [ -f "${EJUDGE_LANG_CONFIG}" ] then . "${EJUDGE_LANG_CONFIG}" else JAVARUN="/usr/bin/java" JAVACRUN="/usr/bin/javac" JAVADIR="/usr" JAVAVER="1.6" fi if [ x"${JAVACRUN}" = x -o x"${JAVACRUN}" = xfalse ] then echo "This language is not supported." >&2 exit 1 fi # avoid setting JAVA_HOME if it is already set if [ "${JAVA_HOME}" = "" ] then JAVA_HOME="${JAVADIR}" PATH="${JAVA_HOME}/bin:${PATH}" export JAVA_HOME PATH fi if [ x"$1" = x-p ] then echo "${JAVACRUN}" exit 0 fi "${JAVARUN}" -version 2>/dev/null >/dev/null || exit 1 [ x"$1" = x-f ] && echo -n "Java JDK " "${JAVARUN}" -version 2>&1 | grep "java version" | sed 's/^.*"\(.*\)"$/\1/g'