Posts Tagged ‘jar’

Quick one

May 26th, 2008

This one is for all of you who (like me) keeps wasting time using commands such as find, jar and grep each time you get a classpath error:

#!/bin/bash
if [ "$1" = "" ]; then
	echo "Usage: jarfind REGEXP";
	exit;
fi

for d in `find . -name '*.jar'` ; do
	FILES=`unzip -l $d | cut -c 29- | egrep ''$1''`;

	if [ "$FILES" != "" ]; then
		echo "$d";

		for f in $FILES ; do
			echo " - $f"
		done
	fi
done

I’ve chose to use unzip instead of jar since it’s far more commonly seem. Move it to /usr/local/bin/jarfind (well, that’s a little personal) and chmod it to +x.

I works searching all jars under the current directory for a regular expression, most commonly a simple class name. It returns the jar’s names and all corresponding class matches.

I’m not a bash programmer, so it may not look that pretty to experienced bash programmers, but it looks beautiful to me, as it saves me a lot of time =). Feel free to make any comments.

EDIT:

first known bug: doesn’t escape special characters in paths =/