#!/bin/bash # $Id: runjava.in 5550 2009-02-19 18:14:43Z cher $ # Copyright (c) 2004-2008 Alexander Chernov # assume that we have single argument # EJUDGE_JAVA_FLAGS may be used to pass additional flags # EJUDGE_JAVA_POLICY is the policy name # EJUDGE_PREFIX_DIR is used to create the full path runfile="$1" LANG_CONFIG_DIR="/home/judges/compile/conf/lang.d" [ "${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" JAVADIR="/usr" JAVAVER="1.6" 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"${EJUDGE_JAVA_POLICY}" = xnone ] then # no security policy, use with caution! mv "$1" Main.jar || exit 128 exec "${JAVARUN}" ${EJUDGE_JAVA_FLAGS} -jar ./Main.jar fi [ x"${EJUDGE_JAVA_POLICY}" = x ] && EJUDGE_JAVA_POLICY=default.policy if [ -f "${EJUDGE_JAVA_POLICY}" ] then policy_file="${EJUDGE_JAVA_POLICY}" else if [ x"${EJUDGE_PREFIX_DIR}" = x ] then echo "EJUDGE_PREFIX_DIR is not set - impossible to set security policy" >&2 exit 128 fi policy_file="${EJUDGE_PREFIX_DIR}/share/ejudge/${EJUDGE_JAVA_POLICY}" fi if [ ! -f "${policy_file}" ] then echo "Java policy file does not exist" >&2 exit 128 fi mv "$1" Main.jar || exit 128 exec "${JAVARUN}" ${EJUDGE_JAVA_FLAGS} -Djava.security.manager -Djava.security.policy="${policy_file}" -jar ./Main.jar