#! /bin/bash # major minor Java platform version # 45 3 1.0 # 45 3 1.1 # 46 0 1.2 # 47 0 1.3 # 48 0 1.4 # 49 0 1.5 # 50 0 1.6 # e.g., ANT_OPTS = -Dant.build.javac.source=1.4 check_version() { : } dir=$(pwd) for i in "$@"; do case "$i" in *.class) : path=$(dirname "${i#./*}") base=$(basename "$i" .class) v=$(javap -classpath "$path" -verbose "$base" \ | awk '/^ major version/ {print $3}') #echo "$jarname $path/$base.class $v" echo "$i $v" ;; *.jar) : case "$i" in /*) jar=$i;; *) jar=$dir/$i; esac jarname=$(basename $jar) tmpdir=$(mktemp -d) pushd $tmpdir >/dev/null jar xf $jar find -name '*.class' | while read class; do path=$(dirname "${class#./*}") base=$(basename "$class" .class) v=$(javap -classpath "$path" -verbose "$base" \ | awk '/^ major version/ {print $3}') #echo "$jarname $path/$base.class $v" echo "$jarname $v" done | sort -u popd >/dev/null rm -rf $tmpdir ;; *) echo "unknown file: $i" esac done