Skip to content

Commit e3a6f97

Browse files
committed
Add a script to get Java version which wrote a JAR
1 parent 1403818 commit e3a6f97

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

class-version.sh

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/sh
2+
3+
# class-version.sh - find the Java version which wrote a JAR file
4+
5+
for jar in "$@"
6+
do
7+
# find the first class of the JAR
8+
class="$(jar tf "$jar" | grep '\.class' | head -n 1 | sed 's/\//./g' | sed 's/\.class$//')"
9+
info="$(javap -verbose -classpath "$jar" "$class")"
10+
11+
# extract major.minor version
12+
minor="$(echo "$info" | grep 'minor version: ' | sed 's/.*minor version: //')"
13+
major="$(echo "$info" | grep 'major version: ' | sed 's/.*major version: //')"
14+
case $major in
15+
45)
16+
version="JDK 1.1"
17+
;;
18+
46)
19+
version="JDK 1.2"
20+
;;
21+
47)
22+
version="JDK 1.3"
23+
;;
24+
48)
25+
version="JDK 1.4"
26+
;;
27+
49)
28+
version="J2SE 5.0"
29+
;;
30+
50)
31+
version="J2SE 6.0"
32+
;;
33+
*)
34+
if [ "$major" -gt 50 ]
35+
then
36+
version="J2SE $(expr $major - 44)"
37+
else
38+
java="Unknown"
39+
fi
40+
;;
41+
42+
esac
43+
44+
# report the results
45+
echo "$jar: $version ($major.$minor)"
46+
done

0 commit comments

Comments
 (0)