scala支持源文件解释执行,jar执行,各有利弊,做个脚本判断如果jar存在则执行jar,如果jar不存在或scala文件已更新则解释执行并生成jar文件。
#!/bin/bash
srcfile="$1"
if [ $# -lt 1 ] || [ "${srcfile}" == "" ]; then
echo need at least one parameter for the scala source file to run >&2
exit 1
fi
shift
name=${srcfile%.*}
ext=${srcfile##*.}
if [ "${ext}" == "scala" ] && [ -f "${srcfile}" ]; then
needcompile=1
scalatime=`stat -c %Y "${srcfile}"`
if [ -f "${name}.jar" ]; then
jartime=`stat -c %Y "${name}.jar"`
if [ ${scalatime} -lt ${jartime} ]; then
needcompile=0
else
rm "${name}.jar"
echo rm "${name}.jar" >&2
fi
fi
if [ ${needcompile} -eq 1 ]; then
echo run scala -save -d "${name}.jar" "${srcfile}" "$@" >&2
run scala -save -d "${name}.jar" "${srcfile}" "$@"
else
echo run scala "${name}.jar" "$@" >&2
run scala "${name}.jar" "$@"
fi
elif [ "${ext}" == "jar" ] && [ -f "${srcfile}" ]; then
echo run scala "${name}.jar" "$@" >&2
run scala "${name}.jar" "$@"
else
echo nothing to do >&2
fi